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.

Oracle Linux und CentOS

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
Ubuntu

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.

Zufällige Lesezugriffe testen

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.

  1. 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
  2. Führen Sie den Job mit dem folgenden Befehl aus:
    fio randomread.fio
Zufällige Dateilese-/-schreibzugriffe testen

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.

Zufällige Lese-/Schreibzugriffe testen
Achtung

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.

  1. 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
  2. Führen Sie den Job mit dem folgenden Befehl aus:
    fio randomreadwrite.fio
Sequenzielle Lesezugriffe testen

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:

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

Zufällige Lesezugriffe 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.

  1. 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
  2. Führen Sie den Job mit dem folgenden Befehl aus:
    fio randomread.fio
Zufällige Dateilese-/-schreibzugriffe testen

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.

Zufällige Lese-/Schreibzugriffe testen
Achtung

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.

  1. 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
  2. Führen Sie den Job mit dem folgenden Befehl aus:
    fio randomreadwrite.fio
Sequenzielle Lesezugriffe testen

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.

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

Zufällige Lesezugriffe auf Latenz testen

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.

  1. 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
  2. Führen Sie den Job mit dem folgenden Befehl aus:
    fio fiorandomreadlatency.fio
Zufällige Lese-/Schreibzugriffe auf Latenz testen
Achtung

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.

  1. 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
  2. Führen Sie den Job mit dem folgenden Befehl aus:
    fio fioradomrwlatency.fio