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