Comandos de FIO de ejemplo para pruebas de rendimiento de volumen en bloque en instancias basadas en Linux
En este tema, se describen comandos de FIO de ejemplo que puede usar para ejecutar pruebas de rendimiento para el servicio Oracle Cloud Infrastructure Block Volume en instancias creadas a partir de imágenes basadas en Linux.
Instalación de FIO
Para instalar y configurar FIO en las instancias con sistemas operativos basados en Linux, ejecute los comandos aplicables a la versión del sistema operativo de la instancia.
Ejecute el siguiente comando para instalar y configurar FIO para los sistemas Oracle Linux o CentOS.
- Oracle Autonomous Linux 8.x, Oracle Linux 8.x y Oracle Linux Cloud Developer 8:
sudo dnf install fio -y
- Oracle Autonomous Linux 7.x, Oracle Linux 7.x, CentOS 7 y CentOS Stream 8:
sudo yum install fio -y
Ejecute los siguientes comandos para instalar y configurar FIO para los sistemas Ubuntu:
sudo apt-get update && sudo apt-get install fio -y
Esto se aplica a Ubuntu 20.04, Ubuntu 18.04 y Ubuntu Minimal 18.04.
Comandos FIO
Pruebas de rendimiento de IOPS
Utilice los siguientes comandos de ejemplo de FIO para probar el rendimiento de IOPS. Puede ejecutar los comandos directamente o crear un archivo de trabajo con el comando y, a continuación, ejecutar el archivo de trabajo.
Ejecute el siguiente comando directamente para probar las lecturas aleatorias:
sudo fio --filename=device name --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Realice los pasos siguientes para este enfoque.
-
Cree un archivo de trabajo, fiorandomread.fio, con lo siguiente:
[global] bs=4K iodepth=256 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randread rw=randread [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio randomread.fio
Ejecute el siguiente comando en el punto de montaje para probar lecturas/escrituras del archivo:
sudo fio --filename=/custom mount point/file --size=500GB --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Agregue los IOPS tanto de lectura como de escritura devueltos.
No ejecute pruebas de FIO con una carga de trabajo de escritura (
readwrite
, randrw
, write
, trimwrite
) directamente en un dispositivo que esté en uso. Ejecute el siguiente comando para probar las lecturas/escrituras aleatorias:
sudo fio --filename=device name --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1
Agregue los IOPS tanto de lectura como de escritura devueltos.
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Realice los pasos siguientes para este enfoque.
-
Cree un archivo de trabajo, fiorandomreadwrite.fio, con lo siguiente:
[global] bs=4K iodepth=256 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randreadwrite rw=randrw [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio randomreadwrite.fio
Para las cargas de trabajo que permiten aprovechar los patrones de acceso secuenciales, como las cargas de trabajo de la base de datos, puede confirmar el rendimiento de este patrón con pruebas de lecturas secuenciales.
Ejecute el siguiente comando para probar lecturas secuenciales:
sudo fio --filename=device name --direct=1 --rw=read --bs=4k --ioengine=libaio --iodepth=256 --runtime=120 --numjobs=4 --time_based --group_reporting --name=iops-test-job --eta-newline=1 --readonly
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Utilice las siguientes instrucciones para este enfoque:
-
Cree un archivo de trabajo, fioread.fio, con lo siguiente:
[global] bs=4K iodepth=256 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-read rw=read [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio read.fio
Pruebas de rendimiento global
Use los siguientes comandos de ejemplo de FIO para probar el rendimiento global.
Ejecute el siguiente comando para probar las lecturas aleatorias:
sudo fio --filename=device name --direct=1 --rw=randread --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Realice los pasos siguientes para este enfoque.
-
Cree un archivo de trabajo, fiorandomread.fio, con lo siguiente:
[global] bs=256K iodepth=64 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randread rw=randread [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio randomread.fio
Ejecute el siguiente comando en el punto de montaje para probar lecturas/escrituras del archivo:
sudo fio --filename=/custom mount point/file --size=500GB --direct=1 --rw=randrw --bs=64k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1
Agregue los MBP tanto de lectura como de escritura devueltos.
No ejecute pruebas de FIO con una carga de trabajo de escritura (
readwrite
, randrw
, write
, trimwrite
) directamente en un dispositivo que esté en uso. Ejecute el siguiente comando para probar las lecturas/escrituras aleatorias:
sudo fio --filename=device name --direct=1 --rw=randrw --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1
Agregue los MBP tanto de lectura como de escritura devueltos.
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Realice los pasos siguientes para este enfoque.
-
Cree un archivo de trabajo, fiorandomread.fio, con lo siguiente:
[global] bs=256K iodepth=64 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-randreadwrite rw=randrw [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio randomreadwrite.fio
Para las cargas de trabajo que permiten aprovechar los patrones de acceso secuenciales, como las cargas de trabajo de la base de datos, puede confirmar el rendimiento de este patrón con pruebas de lecturas secuenciales.
Ejecute el siguiente comando para probar lecturas secuenciales:
sudo fio --filename=device name --direct=1 --rw=read --bs=256k --ioengine=libaio --iodepth=64 --runtime=120 --numjobs=4 --time_based --group_reporting --name=throughput-test-job --eta-newline=1 --readonly
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Realice los pasos siguientes para este enfoque.
-
Cree un archivo de trabajo, fioread.fio, con lo siguiente:
[global] bs=256K iodepth=64 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=4 name=raw-read rw=read [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio read.fio
Pruebas de rendimiento de latencia
Use los siguientes comandos de ejemplo de FIO para probar el rendimiento de latencia. Puede ejecutar los comandos directamente o crear un archivo de trabajo con el comando y, a continuación, ejecutar el archivo de trabajo.
Ejecute el siguiente comando directamente para probar las lecturas aleatorias para la latencia:
sudo fio --filename=device name --direct=1 --rw=randread --bs=4k --ioengine=libaio --iodepth=1 --numjobs=1 --time_based --group_reporting --name=readlatency-test-job --runtime=120 --eta-newline=1 --readonly
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Realice los pasos siguientes para este enfoque.
-
Cree un archivo de trabajo, fiorandomreadlatency.fio, con lo siguiente:
[global] bs=4K iodepth=1 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=1 name=readlatency-test-job rw=randread [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio fiorandomreadlatency.fio
No ejecute pruebas de FIO con una carga de trabajo de escritura (
readwrite
, randrw
, write
, trimwrite
) directamente en un dispositivo que esté en uso. Ejecute el siguiente comando directamente para probar lecturas/escrituras aleatorias para latencia:
sudo fio --filename=device name --direct=1 --rw=randrw --bs=4k --ioengine=libaio --iodepth=1 --numjobs=1 --time_based --group_reporting --name=rwlatency-test-job --runtime=120 --eta-newline=1
En algunos casos, puede ver resultados más coherentes si utiliza un archivo de trabajo en lugar de ejecutar el comando directamente. Realice los pasos siguientes para este enfoque.
-
Cree un archivo de trabajo, fiorandomrwlatency.fio, con lo siguiente:
[global] bs=4K iodepth=1 direct=1 ioengine=libaio group_reporting time_based runtime=120 numjobs=1 name=rwlatency-test-job rw=randrw [job1] filename=device name
-
Ejecute el trabajo con el siguiente comando:
fio fioradomrwlatency.fio