すべてのプロダクト
Search
ドキュメントセンター

File Storage NAS:NASファイルシステムのパフォーマンスのテスト

最終更新日:Dec 19, 2024

このトピックでは、fioツールを使用して、LinuxおよびWindowsでファイルストレージNAS (NAS) ファイルシステムの1秒あたりのスループットと入出力操作 (IOPS) をテストする方法について説明します。

前提条件

ファイルシステムが作成され、1つ以上のElastic Compute Service (ECS) インスタンスにマウントされます。 詳細については、「NASの使用を開始する」をご参照ください。

背景情報

このトピックのパフォーマンス結果は、fioツールを使用してLinuxおよびWindows ECSインスタンスで実行されるテストから取得されます。 これらの結果は、NASファイルシステムのパフォーマンスリファレンスとして使用されます。 NASの製品ページで提供されているパフォーマンスメトリックを満たすために、複数のECSインスタンスを使用してパフォーマンステストを実施することを推奨します。 パフォーマンス指標の詳細については、「NASの製品ページ」をご参照ください。

注意事項

パフォーマンステストを実施する前に、次の項目に注意してください。

  • 最大スループットは、ECSインスタンスの内部帯域幅を超えることはできません。 内部帯域幅が低い場合、スループットは制限される。

    たとえば、最低容量のCapacity NASファイルシステムを購入し、その初期読み取りスループットが150メガバイト/秒であるとします。 ECSインスタンスの内部帯域幅が100 Mbit/sの場合、最大スループットは12.5メガバイト/秒に達する可能性があります。 スループットが150メガバイト/秒に達するようにするには、テスト用に少なくとも12のECSインスタンスが必要です。 ECSインスタンスの内部帯域幅が1 Gbit/sの場合、最大スループットは125メガバイト/秒に達する可能性があります。 スループットが150メガバイト/秒に達するようにするには、テスト用に少なくとも2つのECSインスタンスが必要です。

  • デフォルトでは、LinuxベースのNFSクライアントから最大2つの同時ネットワークファイルシステム (NFS) 要求を送信できます。 これにより、NFSクライアントのパフォーマンスが制限されます。 NFSクライアントをインストールした後、NFSクライアントのパフォーマンスを向上させるために、同時NFSリクエストの最大数を変更します。 詳細については、「NFSクライアントからの同時NFSリクエストの最大数を変更するにはどうすればよいですか?」をご参照ください。

  • Window NFSクライアントは、一度に1つのファイルシステムからの要求のみを処理できます。 その結果、WindowsのNFSファイルシステムのテストパフォーマンスが不正確になる可能性があります。 -numjobsパラメーターを変更して、fioツールでテストできるファイルの数を増やすことをお勧めします。

手順

  1. ECS インスタンスに接続します。 詳細については、「接続方法」をご参照ください。

  2. fioツールをインストールします。 fioツールがインストールされている場合は、この手順をスキップしてパフォーマンステストコマンドを実行します。

    • Linux

      オペレーティングシステム

      インストールコマンド

      CentOS

      sudo yum install fio

      Redhat

      Alibaba Cloud Linux

      Ubuntu

      次のコマンドを順番に実行します。

      1. sudo apt-get  update
      2. sudo apt-get install fio

      Debian

    • Windows

      インストールパッケージをMSI形式でダウンロードします。 fioインストールパッケージをダウンロードするには、fio公式Webサイトにアクセスしてください。

  3. パフォーマンステストコマンドを実行します。 コマンドの詳細については、次のセクションを参照してください。

Linuxのパフォーマンステストコマンド

このセクションでは、例として汎用NASファイルシステムを使用します。 Linux ECSインスタンスで次のコマンドを実行し、パフォーマンスをテストします。

  • ランダム読み取りIOPSのテストに使用されるコマンド:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randread -bs=4K -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    サンプルテスト结果:

    image.png

  • ランダム書き込みIOPSをテストするために使用されるコマンド:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randwrite -bs=4K -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    サンプルテスト结果:

    image.png

  • ランダム読み取りスループットのテストに使用するコマンド:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randread -bs=1M -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    サンプルテスト结果:

    image.png

  • ランダム書き込みスループットのテストに使用するコマンド:

    fio -numjobs=1 -iodepth=128 -direct=1 -ioengine=libaio -sync=1 -rw=randwrite -bs=1M -size=1G -time_based -runtime=60 -name=Fio -directory=/mnt

    サンプルテスト结果:

    image.png

Windowsのパフォーマンステストコマンド

この例では、Capacity NASファイルシステムがDisk Zにマウントされ、fioツールがC:\Program Files\fio\fio.exeディレクトリにインストールされています。 次のコマンドを実行して、パフォーマンステストを実行します。

説明

Window NFSクライアントは、一度に1つのファイルシステムからの要求のみを処理できます。 その結果、WindowsのNFSファイルシステムのテストパフォーマンスが不正確になる可能性があります。 -numjobsパラメーターを変更して、fioツールでテストできるファイルの数を増やすことをお勧めします。

  • ランダム読み取りIOPSのテストに使用されるコマンド:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randread -bs=4K -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    サンプルテスト结果:

    image.png

  • ランダム書き込みIOPSをテストするために使用されるコマンド:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randwrite -bs=4K -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    サンプルテスト结果:

    image.png

  • ランダム読み取りスループットのテストに使用するコマンド:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randread -bs=1M -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    サンプルテスト结果:

    image.png

  • ランダム書き込みスループットのテストに使用するコマンド:

    "c:\Program Files\fio\fio.exe" -name=Fio -numjobs=2 -iodepth=128 -direct=1 -ioengine=windowsaio -sync=1 -rw=randwrite -bs=1M -size=1G -time_based -runtime=60 -group_reporting -thread -directory=Z\:\

    サンプルテスト结果:

    image.png

fioパラメータ

次の表に、上記のfioコマンドのパラメーターを示します。

パラメーター

説明

直接

直接I/Oを使用するかどうかを指定します。 デフォルト値:1 有効な値:

  • 1: 直接I/Oを使用し、I/Oバッファを無視し、データを直接書き込みます。

  • 0: 直接I/Oを使用しない、I/Oバッファを無視する、または直接データを書き込む。

iodepth

テスト中のI/Oキューの深さ。 たとえば、-iodepth=1は、fio制御要求内のI/O操作の最大数が1であることを示します。

rw

テスト中に使用される読み取り /書き込みポリシー。 有効な値:

  • randwrite: ランダムな書き込み

  • randread: ランダムな読み取り

  • read: シーケンシャル読み取り

  • write: シーケンシャル書き込み

  • randrw: ランダムな読み取りと書き込み

ioengine

fioがテストに使用するI/Oエンジン。 ほとんどの場合、libaioが使用されます。 その他の利用可能なI/Oエンジンについては、fioのドキュメントを参照してください。

bs

I/Oユニットのブロックサイズ。 読み取りと書き込みの値は、<読み取りの値 >,< 書き込みの値> 形式で指定できます。 値を指定しない場合は、デフォルト値が使用されます。

size

テストファイルのサイズ。

fioは、実行時などの特定の要因によって制限されない限り、指定されたサイズのファイルの読み取りまたは書き込みが行われた後にのみテストを終了します。 このパラメーターが指定されていない場合、fioは指定されたすべてのファイルまたはデバイスのサイズを使用します。 有効な値は、1% 〜100% の範囲のパーセントであってもよい。 たとえば、sizeパラメーターが20% に設定されている場合、fioはすべてのファイルまたはデバイスのサイズの20% を使用します。

numjobs

テスト中に使用される同時スレッドの数。

runtime

テストの期間。これは、fioが実行される期間を示します。

このパラメーターが指定されていない場合、sizeパラメーターで指定されたサイズのファイルがbsパラメーターで指定されたブロックサイズで読み書きされるまでテストは終了しません。

group_reporting

テスト結果の表示モード。

このパラメーターを指定すると、タスクごとの統計ではなく、プロセスごとの統計が表示されます。

ディレクトリ

テストするファイルシステムのマウントパス。

name

テストの名前。 必要に応じてパラメーターを指定できます。

パラメーターの詳細については、「fio (1) - Linux man page」をご参照ください。

よくある質問

NASのパフォーマンスの詳細については、「NASファイルシステムのパフォーマンスに関するFAQ」をご参照ください。