第4章 VDO パフォーマンスのテスト
一連のテストを実行して、VDO パフォーマンスを測定し、VDO でシステムのパフォーマンスプロファイルを取得し、VDO で適切に動作するアプリケーションを特定できます。
前提条件
- 1 つ以上の Linux 物理ブロックデバイスが使用できる。
-
ターゲットブロックデバイス (例:
/dev/sdb
) が 512 GiB を超える。 -
柔軟な I/O テスター (
fio
) がインストールされている。 - VDO がインストールされている。
4.1. VDO パフォーマンステスト用に環境の準備
VDO パフォーマンスをテストする前に、テスト時に使用するホストシステムの設定、VDO 設定、およびワークロードを考慮する必要があります。この選択肢は、領域効率、帯域幅、およびレイテンシーのベンチマークに影響します。
あるテストが別のテストの結果に影響を及ぼさないようにするには、各テストの反復ごとに新しい VDO ボリュームを作成する必要があります。
4.1.1. VDO パフォーマンスをテストする前に考慮すべき点
以下の条件と設定は、VDO テストの結果に影響します。
システムの設定
-
利用可能な CPU コアの数およびタイプ。この情報は、
taskset
ユーティリティーを使用してリスト表示できます。 - 利用可能なメモリーと、インストールされているメモリーの合計
- ストレージデバイスの設定
- アクティブディスクスケジューラー
- Linux カーネルバージョン
- インストールされているパッケージ
VDO の設定
- パーティション設定スキーム
- VDO ボリュームで使用しているファイルシステム
- VDO ボリュームに割り当てられた物理ストレージのサイズ
- 作成した論理 VDO ボリュームのサイズ
- UDS インデックス sparse または dense
- メモリーサイズの UDS インデックス
- VDO スレッド設定
ワークロード
- テストデータを生成するのに使用するツールの種類
- 同時クライアントの数
- 書き込まれたデータで重複する 4 KiB ブロックの量
- 読み書きのパターン
- ワーキングセットのサイズ
4.1.2. VDO 読み込みパフォーマンスのテストに関する特別な考慮事項
VDO 読み込みパフォーマンスをテストする前に、以下の追加要素を考慮する必要があります。
- 4 KiB ブロックが書き込まれていないと、VDO はストレージから読み込みを行わず、ゼロブロックですぐに応答します。
- 4 KiB ブロックが書き込まれていても、含まれているのがすべてのゼロの場合、VDO はストレージから読み込みを行わず、ゼロブロックですぐに応答します。
この動作により、読み込むデータがない場合に、読み込みのパフォーマンスが非常に高速になります。このため、読み取りテストは実際のデータでボリュームを事前に入力する必要があります。
4.1.3. VDO パフォーマンスをテストするシステムの準備
この手順では、テスト中に VDO パフォーマンスを最適化するためのシステム設定を行います。
特定のテストに挙げられている境界を超えたテストを行うと、異常な結果により、テスト時間が損失する可能性があります。
たとえば、VDO テストは、100 GiB アドレス範囲で無作為な読み込みを実行するテストを記述します。500 GiB のワーキングセットをテストするには、VDO ブロックマップキャッシュに割り当てられる RAM の容量を適宜増やす必要があります。
手順
- CPU が最も高いパフォーマンス設定で実行していることを確認します。
-
可能であれば、BIOS 設定または Linux の
cpupower
ユーティリティーを使用して CPU 周波数のスケーリングを無効にします。 - 可能であれば、CPU の動的プロセッサーの周波数調整 (Turbo Boost または Turbo Core) を有効にします。この機能により、テスト結果に多少のばらつきが生じますが、全体的なパフォーマンスは向上します。
ファイルシステムは、パフォーマンスに固有の影響を与える可能性があります。多くの場合、パフォーマンス測定値にずれが生じ、結果に対する VDO の影響を特定することが困難になります。
妥当な場合には、raw ブロックデバイスのパフォーマンスを測定します。これができない場合は、VDO がターゲット実装で使用するファイルシステムを使用してデバイスをフォーマットします。