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.

Oracle Linux y CentOS

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
Ubuntu

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.

Lecturas aleatorias de prueba

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.

  1. 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
  2. Ejecute el trabajo con el siguiente comando:
    fio randomread.fio
Probar lecturas/escrituras aleatorias del archivo

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.

Probar lecturas/escrituras aleatorias
Atención

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.

  1. 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
  2. Ejecute el trabajo con el siguiente comando:
    fio randomreadwrite.fio
Lecturas secuenciales de prueba

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:

  1. 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
  2. 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.

Lecturas aleatorias de prueba

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.

  1. 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
  2. Ejecute el trabajo con el siguiente comando:
    fio randomread.fio
Probar lecturas/escrituras aleatorias del archivo

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.

Probar lecturas/escrituras aleatorias
Atención

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.

  1. 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
  2. Ejecute el trabajo con el siguiente comando:
    fio randomreadwrite.fio
Lecturas secuenciales de prueba

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.

  1. 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
  2. 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.

Prueba de lecturas aleatorias para latencia

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.

  1. 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
  2. Ejecute el trabajo con el siguiente comando:
    fio fiorandomreadlatency.fio
Probar lecturas/escrituras aleatorias para latencia
Atención

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.

  1. 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
  2. Ejecute el trabajo con el siguiente comando:
    fio fioradomrwlatency.fio