このトピックでは、fio ツールを使用して、スループットや 1 秒あたりの I/O 操作 (IOPS) など、Cloud Parallel File Storage (CPFS) ファイルシステムのパフォーマンスをテストする方法について説明します。
前提条件
テスト用の CPFS ファイルシステムが作成され、Elastic Compute Service (ECS) インスタンスにマウントされていること。
テスト用の ECS インスタンスに十分な CPU コアと内部帯域幅があること。 CPU コアの数は 8 以上である必要があります。
背景情報
パフォーマンステストの結果はテストツールによって異なり、実際のパフォーマンスを反映することはできません。 fio を使用して CPFS ファイルシステムのパフォーマンスをテストすることを推奨します。 このトピックのパフォーマンス結果は、fio を使用して Linux ECS インスタンスで実行されたテストから得られたものです。 これらの結果は、CPFS ファイルシステムのパフォーマンスリファレンスとして使用されます。
手順
ECS インスタンスに接続します。 詳細については、「接続方法の概要」をご参照ください。
fio ツールをインストールします。 fio ツールがインストールされている場合は、このステップをスキップしてパフォーマンステストコマンドを実行してください。
オペレーティングシステム
インストールコマンド
CentOS
sudo yum install fioRed Hat Enterprise Linux (RHEL)
Alibaba Cloud Linux
Ubuntu
次のコマンドを順番に実行します:
sudo apt-get updatesudo apt-get install fio
Debian
パフォーマンステストコマンドを実行します。
ランダム書き込み IOPS をテストするために使用されるコマンド:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randwrite -bs=4k -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Write_Testingランダム読み取り IOPS をテストするために使用されるコマンド:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randread -bs=4k -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Read_Testingシーケンシャル書き込みスループットをテストするために使用されるコマンド:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=write -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Seq_Write_Testingシーケンシャル読み取りスループットをテストするために使用されるコマンド:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=read -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Seq_Read_Testingランダム書き込みスループットをテストするために使用されるコマンド:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randwrite -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Write_Testingランダム読み取りスループットをテストするために使用されるコマンド:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randread -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Read_Testing
fio パラメーターの説明
次の表に、上記の fio コマンドのパラメーターを示します。
パラメーター | 説明 |
direct | ダイレクト I/O を使用するかどうかを指定します。 デフォルト値: 1。 有効値:
|
iodepth | テスト中の I/O キューの深さ。 たとえば、 |
rw | テスト中に使用される読み取り/書き込みポリシー。 有効値:
|
ioengine | fio がテストに使用する I/O エンジン。 ほとんどの場合、libaio が使用されます。 利用可能な他の I/O エンジンの詳細については、fio のドキュメントをご参照ください。 |
bs | I/O ユニットのブロックサイズ。 デフォルト値: 4k (4 KiB を示します)。 読み取りと書き込みの値は、<読み取りの値>,<書き込みの値> のフォーマットで指定できます。 値を指定しない場合、デフォルト値が使用されます。 |
size | テストファイルのサイズ。 fio は、runtime などの特定の要因によって制限されない限り、指定されたサイズのファイルの読み取りまたは書き込みが完了した後にのみテストを終了します。 このパラメーターが指定されていない場合、fio は指定されたすべてのファイルまたはデバイスのサイズを使用します。 有効値は、1% から 100% の範囲のパーセント値にすることもできます。 たとえば、size パラメーターが 20% に設定されている場合、fio は指定されたすべてのファイルまたはデバイスのサイズの 20% を使用します。 |
numjobs | テスト中に使用される同時スレッドの数。 この例では、値は 256 です。 |
runtime | テストの期間。fio が実行される時間を示します。 このパラメーターが指定されていない場合、テストは size パラメーターで指定されたサイズのファイルが bs パラメーターで指定されたブロックサイズで読み取りまたは書き込みされるまで終了しません。 |
group_reporting | テスト結果の表示モード。 このパラメーターを指定すると、タスクごとの統計ではなく、プロセスごとの統計が表示されます。 |
directory | テスト対象のファイルシステムのマウントパス。 この例では、値は |
name | テストの名前。 必要に応じてパラメーターを指定できます。 例: Rand_Write_Testing。 |
パラメーターの詳細については、「fio(1) - Linux man page」をご参照ください。