Red Hat Training

A Red Hat training course is available for RHEL 8

4.8. fio を使用した VDO パフォーマンスのテストに使用するオプション

VDO テストは、fio ユーティリティーを使用して、反復可能な特性を持つデータを合成して生成します。テストで実際のワークロードをシミュレートするには、以下の fio オプションが必要です。

表4.1 使用されている fio オプション

引数説明テストで使用される値

--size

fio がジョブごとにターゲットに送信するデータ量。

--numjobs オプションも参照してください。

100 GiB

--bs

fio によって生成された各読み書き要求のブロックサイズ 。

Red Hat は、4 KiB のデフォルトの VDO と一致する 4 KiB のブロックサイズを推奨しています。

4k

--numjobs

fio がベンチマーク用に作成するジョブの数。

各ジョブは、--size オプションで指定したデータ量を送信します。最初のジョブは、--offset オプションで指定したオフセットでデバイスにデータを送信します。その後のジョブは、--offset_incremen オプションを指定しない限り、ディスクの同じ領域を上書きします。これは、前のジョブがその値で開始した場所からそれぞれのジョブをオフセットします。

フラッシュディスク (SSD) で最高のパフォーマンスを実現するには、Red Hat では少なくとも 2 つのジョブを推奨します。通常、1 つのジョブで、ローテーションを行うディスク (HDD) のスループットをいっぱいにできます。

HDD の場合は 1、SSD の場合は 2

--thread

fio ジョブに対して、フォークではなくスレッドで実行するように指示します。これにより、コンテキストスイッチを制限することでパフォーマンスが向上する可能性があります。

none

--ioengine

fio がベンチマークに使用する I/O エンジン。

Red Hat のテストは、libaio と呼ばれる非同期で非バッファーのエンジンを使用して、複数のプロセスが同時に無作為な要求を行うワークロードをテストします。libaio エンジンにより、1 つのスレッドが、データを取得する前に複数のリクエストを非同期に作成できます。これにより、同期エンジンが多くのスレッドからのリクエストを提供した場合に、同期エンジンが必要とするコンテキストスイッチの数が制限されます。

libaio

--direct

このオプションは、デバイスに送信された要求がカーネルページキャッシュを回避できるようにします。

libaio エンジンを --direct オプションと併用する必要があります。そうでない場合は、カーネルはすべての I/O 要求に対して同期 API を使用します。

1 (libaio)

--iodepth

任意の時点で実行している I/O バッファーの数。

高い値を設定すると、通常、無作為な読み取りまたは書き込みのパフォーマンスが向上します。高い値を設定すると、コントローラーは常にバッチ処理を要求できます。ただし、設定値が高すぎる (通常は 1K を超える) と、望ましくないレイテンシーが発生する可能性があります。

Red Hat では、128 から 512 までの値を推奨します。最後の値はトレードオフであり、アプリケーションがレイテンシーを許容する方法によって異なります。

最小 128

--iodepth_batch_submit

I/O 深度のバッファープールが空になり始めたときに作成する I/O 要求の数。

このオプションは、I/O 操作からのタスク切り替えを、テスト中のバッファー作成に制限します。

16

--iodepth_batch_complete

バッチ送信前に完了する I/O 操作の数。

このオプションは、I/O 操作からのタスク切り替えを、テスト中のバッファー作成に制限します。

16

--gtod_reduce

レイテンシーを計算する時刻の呼び出しを無効にします。

この設定を有効にすると、スループットが低下します。レイテンシー測定が必要でない限り、オプションを有効にします。

1