このトピックでは、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ツールでテストできるファイルの数を増やすことをお勧めします。
手順
ECS インスタンスに接続します。 詳細については、「接続方法」をご参照ください。
fioツールをインストールします。 fioツールがインストールされている場合は、この手順をスキップしてパフォーマンステストコマンドを実行します。
Linux
オペレーティングシステム
インストールコマンド
CentOS
sudo yum install fio
Redhat
Alibaba Cloud Linux
Ubuntu
次のコマンドを順番に実行します。
sudo apt-get update
sudo apt-get install fio
Debian
Windows
インストールパッケージをMSI形式でダウンロードします。 fioインストールパッケージをダウンロードするには、fio公式Webサイトにアクセスしてください。
パフォーマンステストコマンドを実行します。 コマンドの詳細については、次のセクションを参照してください。
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
サンプルテスト结果:
ランダム書き込み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
サンプルテスト结果:
ランダム読み取りスループットのテストに使用するコマンド:
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
サンプルテスト结果:
ランダム書き込みスループットのテストに使用するコマンド:
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
サンプルテスト结果:
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\:\
サンプルテスト结果:
ランダム書き込み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\:\
サンプルテスト结果:
ランダム読み取りスループットのテストに使用するコマンド:
"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\:\
サンプルテスト结果:
ランダム書き込みスループットのテストに使用するコマンド:
"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\:\
サンプルテスト结果:
fioパラメータ
次の表に、上記のfioコマンドのパラメーターを示します。
パラメーター | 説明 |
直接 | 直接I/Oを使用するかどうかを指定します。 デフォルト値:1 有効な値:
|
iodepth | テスト中のI/Oキューの深さ。 たとえば、 |
rw | テスト中に使用される読み取り /書き込みポリシー。 有効な値:
|
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」をご参照ください。