Comandi FIO di esempio per i test delle prestazioni dei volumi a blocchi sulle istanze basate su Linux

Questo argomento descrive i comandi FIO di esempio che è possibile utilizzare per eseguire i test delle prestazioni per il servizio Oracle Cloud Infrastructure Block Volume nelle istanze create da immagini basate su Linux.

Installazione di FIO

Per installare e configurare FIO nelle istanze con sistemi operativi basati su Linux, eseguire i comandi applicabili alla versione del sistema operativo per l'istanza.

Oracle Linux e CentOS

Eseguire il comando riportato di seguito per installare e configurare FIO per i sistemi Oracle Linux o CentOS.

  • Oracle Autonomous Linux 8.x, Oracle Linux 8.x, and Oracle Linux Cloud Developer 8:
    sudo dnf install fio -y
  • Oracle Autonomous Linux 7.x, Oracle Linux 7.x, CentOS 7 e CentOS Stream 8:
    sudo yum install fio -y
Ubuntu

Eseguire i comandi riportati di seguito per installare e configurare FIO per i sistemi Ubuntu.

sudo apt-get update && sudo apt-get install fio -y

Questo vale per Ubuntu 20.04, Ubuntu 18.04 e Ubuntu Minimal 18.04.

Comandi FIO

Test prestazioni IOPS

Utilizzare i seguenti comandi di esempio FIO per eseguire il test delle prestazioni IOPS. È possibile eseguire i comandi direttamente o creare un file di job con il comando e quindi eseguire il file di job.

Verifica letture casuali

Eseguire direttamente il comando seguente per eseguire il test delle letture casuali:

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

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, procedere come segue.

  1. Creare un file di job, fiorandomread.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio randomread.fio
Lettura/scritture casuali del file di test

Eseguire il comando seguente sul punto di attivazione per eseguire il test della lettura/scrittura dei file:

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

Aggiungere sia gli IOPS di lettura che gli IOPS di scrittura restituiti.

Verifica letture/scritture casuali
Attenzione

Non eseguire test FIO con un carico di lavoro di scrittura (readwrite, randrw, write, trimwrite) direttamente su un dispositivo in uso.

Eseguire il comando seguente per eseguire il test delle letture/scritture casuali:

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

Aggiungere sia gli IOPS di lettura che gli IOPS di scrittura restituiti.

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, procedere come segue.

  1. Creare un file di job, fiorandomreadwrite.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio randomreadwrite.fio
Letture sequenziali del test

Per i carichi di lavoro che consentono di sfruttare i pattern di accesso sequenziali, ad esempio i carichi di lavoro del database, è possibile confermare le prestazioni per questo pattern eseguendo il test delle letture sequenziali.

Eseguire il comando seguente per eseguire il test delle letture sequenziali:

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

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, attenersi alle istruzioni riportate di seguito.

  1. Creare un file di job, fioread.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio read.fio

Test delle prestazioni di throughput

Utilizzare i seguenti comandi di esempio FIO per eseguire il test delle prestazioni di throughput.

Verifica letture casuali

Eseguire il comando seguente per eseguire il test delle letture casuali:

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

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, procedere come segue.

  1. Creare un file di job, fiorandomread.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio randomread.fio
Lettura/scritture casuali del file di test

Eseguire il comando seguente sul punto di attivazione per eseguire il test della lettura/scrittura dei file:

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 

Aggiungere sia gli MBP di lettura che gli MBP di scrittura restituiti.

Verifica letture/scritture casuali
Attenzione

Non eseguire test FIO con un carico di lavoro di scrittura (readwrite, randrw, write, trimwrite) direttamente su un dispositivo in uso.

Eseguire il comando seguente per eseguire il test delle letture/scritture casuali:

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

Aggiungere sia gli MBP di lettura che gli MBP di scrittura restituiti.

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, procedere come segue.

  1. Creare un file di job, fiorandomread.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio randomreadwrite.fio
Letture sequenziali del test

Per i carichi di lavoro che consentono di sfruttare i pattern di accesso sequenziali, ad esempio i carichi di lavoro del database, è possibile confermare le prestazioni per questo pattern eseguendo il test delle letture sequenziali.

Eseguire il comando seguente per eseguire il test delle letture sequenziali:

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

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, procedere come segue.

  1. Creare un file di job, fioread.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio read.fio

Test prestazioni latenza

Utilizzare i seguenti comandi di esempio FIO per verificare le prestazioni della latenza. È possibile eseguire i comandi direttamente o creare un file di job con il comando e quindi eseguire il file di job.

Test delle letture casuali per la latenza

Eseguire direttamente il comando seguente per eseguire il test delle letture casuali per la latenza:

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

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, procedere come segue.

  1. Creare un file di job, fiorandomreadlatency.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio fiorandomreadlatency.fio
Verifica letture/scritture casuali per latenza
Attenzione

Non eseguire test FIO con un carico di lavoro di scrittura (readwrite, randrw, write, trimwrite) direttamente su un dispositivo in uso.

Eseguire direttamente il comando seguente per eseguire il test delle letture/scritture casuali per la latenza:

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

In alcuni casi è possibile che vengano visualizzati risultati più coerenti se si utilizza un file di job anziché eseguire direttamente il comando. Per questo approccio, procedere come segue.

  1. Creare un file di job, fiorandomrwlatency.fio, con i seguenti elementi:

    [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. Eseguire il job utilizzando il comando riportato di seguito.
    fio fioradomrwlatency.fio