Linuxベース・インスタンスでブロック・ボリューム・パフォーマンス・テストを行うためのサンプルFIOコマンド

このトピックでは、Linuxベース・イメージから作成されたインスタンスに対してOracle Cloud Infrastructure Block Volumeサービスのパフォーマンス・テストを実行するために使用できるサンプルFIOコマンドについて説明します。

FIOのインストール

Linuxベース・オペレーティング・システムでインスタンスにFIOをインストールして構成するには、オペレーティング・システム・バージョンに適用可能なコマンドをインスタンスに対して実行します。

Oracle LinuxおよびCentOS

Oracle LinuxまたはCentOSシステムにFIOをインストールして構成するには、次のコマンドを実行します

  • Oracle Autonomous Linux 8.x、Oracle Linux 8.xおよび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およびCentOS Stream 8:
    sudo yum install fio -y
Ubuntu

UbuntuシステムにFIOをインストールして構成するには、次のコマンドを実行します:

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

これは、Ubuntu 20.04、Ubuntu 18.04およびUbuntu Minimal 18.04に適用されます。

FIOコマンド

IOPSパフォーマンス・テスト

IOPSパフォーマンスをテストするには、次のFIOサンプル・コマンドを使用します。コマンドを直接実行することも、コマンドを使用してジョブ・ファイルを作成してからそのジョブ・ファイルを実行することもできます。

ランダム読取りのテスト

ランダム読取りをテストするには、次のコマンドを直接実行します:

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

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次のステップを使用します。

  1. 次のようなジョブ・ファイル(fiorandomread.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio randomread.fio
ファイルのランダム読取り/書込みのテスト

ファイルの読取り/書込みをテストするには、マウント・ポイントに対して次のコマンドを実行します:

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

返された読取りIOPSと書込みIOPSの両方を追加します。

ランダム読取り/書込みのテスト
注意

書込みワークロード(readwriterandrwwritetrimwrite)を使用するFIOテストを、使用中のデバイスに対して直接実行しないでください。

ランダム読取り/書込みをテストするには、次のコマンドを実行します:

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

返された読取りIOPSと書込みIOPSの両方を追加します。

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次のステップを使用します。

  1. 次のようなジョブ・ファイル(fiorandomreadwrite.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio randomreadwrite.fio
順次読取りのテスト

データベース・ワークロードなど、順次アクセス・パターンを利用できるワークロードに対しては、順次読取りをテストすることにより、このパターンのパフォーマンスを確認できます。

順次読取りをテストするには、次のコマンドを実行します:

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

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次の手順を使用します:

  1. 次のようなジョブ・ファイル(fioread.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio read.fio

スループット・パフォーマンス・テスト

スループット・パフォーマンスをテストするには、次のFIOサンプル・コマンドを使用します。

ランダム読取りのテスト

ランダム読取りをテストするには、次のコマンドを実行します:

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

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次のステップを使用します。

  1. 次のようなジョブ・ファイル(fiorandomread.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio randomread.fio
ファイルのランダム読取り/書込みのテスト

ファイルの読取り/書込みをテストするには、マウント・ポイントに対して次のコマンドを実行します:

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 

返された読取りMBPと書込みMBPの両方を追加します。

ランダム読取り/書込みのテスト
注意

書込みワークロード(readwriterandrwwritetrimwrite)を使用するFIOテストを、使用中のデバイスに対して直接実行しないでください。

ランダム読取り/書込みをテストするには、次のコマンドを実行します:

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

返された読取りMBPと書込みMBPの両方を追加します。

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次のステップを使用します。

  1. 次のようなジョブ・ファイル(fiorandomread.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio randomreadwrite.fio
順次読取りのテスト

データベース・ワークロードなど、順次アクセス・パターンを利用できるワークロードに対しては、順次読取りをテストすることにより、このパターンのパフォーマンスを確認できます。

順次読取りをテストするには、次のコマンドを実行します:

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

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次のステップを使用します。

  1. 次のようなジョブ・ファイル(fioread.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio read.fio

レイテンシ・パフォーマンス・テスト

レイテンシ・パフォーマンスをテストするには、次のFIOサンプル・コマンドを使用します。コマンドを直接実行することも、コマンドを使用してジョブ・ファイルを作成してからそのジョブ・ファイルを実行することもできます。

ランダム読取りのレイテンシのテスト

ランダム読取りのレイテンシをテストするには、次のコマンドを直接実行します:

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

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次のステップを使用します。

  1. 次のようなジョブ・ファイル(fiorandomreadlatency.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio fiorandomreadlatency.fio
ランダム読取り/書込みのレイテンシのテスト
注意

書込みワークロード(readwriterandrwwritetrimwrite)を使用するFIOテストを、使用中のデバイスに対して直接実行しないでください。

ランダム読取り/書込みのレイテンシをテストするには、次のコマンドを直接実行します:

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

コマンドを直接実行せずにジョブ・ファイルを使用したほうが、結果の一貫性が高くなる場合もあります。このアプローチには次のステップを使用します。

  1. 次のようなジョブ・ファイル(fiorandomrwlatency.fio)を作成します:

    [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. 次のコマンドを使用してジョブを実行します:
    fio fioradomrwlatency.fio