Beispiel-FIO-Befehle für Block-Volume-Performancetests auf Linux-basierten Instanzen
In diesem Thema werden Beispiel-FIO-Befehle beschrieben, mit denen Sie Performancetests für den Oracle Cloud Infrastructure Block Volume Service auf Instanzen ausführen können, die mit Linux-basierten Images erstellt werden.
FIO installieren
Um FIO auf Ihren Instanzen mit Linux-basierten Betriebssystemen zu installieren und zu konfigurieren, führen Sie die Befehle aus, die für die Betriebssystemversion Ihrer Instanz anwendbar sind.
Führen Sie den folgenden Befehl aus, um FIO für Ihre Oracle Linux- oder CentOS-Systeme zu installieren und zu konfigurieren.
- Oracle Autonomous Linux 8.x, Oracle Linux 8.x und Oracle Linux Cloud Developer 8:
sudo dnf install fio -y
- Oracle Autonomous Linux 7.x, Oracle Linux 6.x, Oracle Linux 7.x, CentOS 7 und CentOS Stream 8:
sudo yum install fio -y
Führen Sie die folgenden Befehle aus, um FIO für Ihre Ubuntu-Systeme zu installieren und zu konfigurieren:
sudo apt-get update && sudo apt-get install fio -y
Das gilt für Ubuntu 20.04, Ubuntu 18.04 und Ubuntu Minimal 18.04.
FIO-Befehle
IOPS-Performancetests
Verwenden Sie die folgenden FIO-Beispielbefehle, um die IOPS-Performance zu testen. Sie können die Befehle direkt ausführen oder eine Jobdatei mit dem Befehl erstellen und dann die Jobdatei ausführen.
Führen Sie den folgenden Befehl direkt aus, um zufällige Lesezugriffe zu testen:
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 einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Jobdatei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Schritte für diesen Ansatz.
-
Erstellen Sie eine Jobdatei (fiorandomread.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio randomread.fio
Führen Sie den folgenden Befehl mit dem Mount Point aus, um die Dateilese-/-schreibzugriffe zu testen:
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
Fügen Sie sowohl die Anzahl der zurückgegebenen Lese-IOPS als auch die zurückgegebenen Schreib-IOPS hinzu.
Führen Sie FIO-Tests mit einer Schreib-Workload (
readwrite
, randrw
, write
, trimwrite
) nicht direkt für ein Gerät aus, das verwendet wird. Führen Sie den folgenden Befehl aus, um zufällige Lese-/Schreibzugriffe zu testen:
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
Fügen Sie sowohl die Anzahl der zurückgegebenen Lese-IOPS als auch die zurückgegebenen Schreib-IOPS hinzu.
In einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Jobdatei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Schritte für diesen Ansatz.
-
Erstellen Sie eine Jobdatei (fiorandomreadwrite.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio randomreadwrite.fio
Bei Workloads, mit denen Sie sequenzielle Zugriffsmuster nutzen können, beispielsweise Datenbank-Workloads, können Sie die Performance für dieses Muster bestätigen, indem Sie sequenzielle Lesezugriffe testen.
Führen Sie den folgenden Befehl aus, um sequenzielle Lesezugriffe zu testen:
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 einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Job-Datei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Anweisungen für diesen Ansatz:
-
Erstellen Sie eine Jobdatei (fioread.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio read.fio
Durchsatzperformancetests
Verwenden Sie die folgenden FIO-Beispielbefehle, um die Durchsatzperformance zu testen.
Führen Sie den folgenden Befehl aus, um zufällige Lesezugriffe zu testen:
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 einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Jobdatei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Schritte für diesen Ansatz.
-
Erstellen Sie eine Jobdatei (fiorandomread.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio randomread.fio
Führen Sie den folgenden Befehl mit dem Mount Point aus, um die Dateilese-/-schreibzugriffe zu testen:
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
Fügen Sie die zurückgegebenen Lese-MBPs und Schreib-MBPs hinzu.
Führen Sie FIO-Tests mit einer Schreib-Workload (
readwrite
, randrw
, write
, trimwrite
) nicht direkt für ein Gerät aus, das verwendet wird. Führen Sie den folgenden Befehl aus, um zufällige Lese-/Schreibzugriffe zu testen:
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
Fügen Sie die zurückgegebenen Lese-MBPs und Schreib-MBPs hinzu.
In einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Jobdatei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Schritte für diesen Ansatz.
-
Erstellen Sie eine Jobdatei (fiorandomread.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio randomreadwrite.fio
Bei Workloads, mit denen Sie sequenzielle Zugriffsmuster nutzen können, beispielsweise Datenbank-Workloads, können Sie die Performance für dieses Muster bestätigen, indem Sie sequenzielle Lesezugriffe testen.
Führen Sie den folgenden Befehl aus, um sequenzielle Lesezugriffe zu testen:
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 einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Jobdatei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Schritte für diesen Ansatz.
-
Erstellen Sie eine Jobdatei (fioread.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio read.fio
Latenzperformancetests
Verwenden Sie die folgenden FIO-Beispielbefehle, um die Latenzperformance zu testen. Sie können die Befehle direkt ausführen oder eine Jobdatei mit dem Befehl erstellen und dann die Jobdatei ausführen.
Führen Sie den folgenden Befehl direkt aus, um zufällige Lesezugriffe auf Latenz zu testen:
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 einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Jobdatei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Schritte für diesen Ansatz.
-
Erstellen Sie eine Jobdatei (fiorandomreadlatency.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio fiorandomreadlatency.fio
Führen Sie FIO-Tests mit einer Schreib-Workload (
readwrite
, randrw
, write
, trimwrite
) nicht direkt für ein Gerät aus, das verwendet wird. Führen Sie den folgenden Befehl direkt aus, um zufällige Lese-/Schreibvorgänge auf Latenz zu testen:
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 einigen Fällen werden möglicherweise konsistentere Ergebnisse angezeigt, wenn Sie eine Jobdatei verwenden, anstatt den Befehl direkt auszuführen. Verwenden Sie die folgenden Schritte für diesen Ansatz.
-
Erstellen Sie eine Jobdatei (fiorandomrwlatency.fio) mit Folgendem:
[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
-
Führen Sie den Job mit dem folgenden Befehl aus:
fio fioradomrwlatency.fio