Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

31.4. パフォーマンステストの手順

本セクションの目的は、VDO がインストールされているデバイスのパフォーマンスプロファイルを作成する方法を説明します。各テストは、VDO がインストールされずに実行し、ベースシステムのパフォーマンスに相対的に VDO のパフォーマンスを評価できるようにする必要があります。

31.4.1. フェーズ 1: I/O Depth の影響(Fixed 4 KB ブロック)

このテストの目的は、最適なスループットとアプライアンスの最小レイテンシーを生成する I/O 深度を決定することです。VDO は、従来のストレージデバイスで使用されていた従来の 512 B ではなく、4 KB セクターサイズを使用します。大きなセクターサイズにより、容量の高いストレージをサポートし、パフォーマンスを改善し、ほとんどのオペレーティングシステムが使用するキャッシュバッファーサイズに一致します。
  1. 4 KB I/O、および I/O 深度で 4 KB の I/O テストを実行し、16、32、64、128、256、512、1024 です。
    • 連続 100% 読み込み(固定 4 KB)*
    • 連続の 100% 書き込み。固定 4 KB
    • ランダムの 100% 読み込み。固定 4 KB*
    • ランダムの 100% 書き込み(固定 4 KB)**
    * 書き込み fio ジョブを実行して読み取り中に読み取られる可能性のある領域を事前入力
    ** 4 KB の無作為な書き込み I/O の実行後に VDO ボリュームを再作成する
    シェルテスト入力差(write)の例:
    # for depth in 1 2 4 8 16 32 64 128 256 512 1024 2048; do 
      fio --rw=write --bs=4096 --name=vdo --filename=/dev/mapper/vdo0 \ 
          --ioengine=libaio --numjobs=1 --thread --norandommap --runtime=300\  
          --direct=1 --iodepth=$depth --scramble_buffers=1  --offset=0 \
          --size=100g
      done
    
  2. 各データポイントでスループットとレイテンシーを記録し、次にグラフ化します。
  3. 繰り返しテストを実施して、4 つのテスト( --rw=randwrite、および --rw=read )を完了します。--rw=randread
結果としてグラフが作成されます。関心のあるポイントは、範囲内での動作であり、I/O 深度の増加率が低下したことを証明します。順次アクセスと無作為なアクセスは異なる値になりますが、すべてのタイプのストレージ構成で異なる場合があります。図31.1「I/O 深度分析」 」に注意してください。マーカー 1 は、X 地点でピークシーケンススループットを識別します。マーカー 2 は、Z 地点でピークのランダムな 4 KB スループットを識別します。
  • この特定のアプライアンスの利点は、連続的な 4 KB I/O depth > X. Beyond that 深度による利点はありません。帯域幅の帯域幅の上昇が発生するため、平均要求のレイテンシーは、追加の I/O 要求に対して 1:1 増加します。
  • この特定のアプライアンスでは、ランダム 4 KB I/O depth > Z. Beyond を活用し、帯域幅の上昇が上昇し、平均要求のレイテンシーは追加の I/O 要求に対して 1:1 を増やします。

図31.1 I/O 深度分析

I/O 深度分析
図31.2「Random Writes の Increasing I/O のレイテンシー応答」 図31.1「I/O 深度分析」。ベンチマークの実践では、応答時間のペナルティーが発生する最大スループットについて、これらのポイントでテストする必要があります。この例のアプライアンスのテストプランで前に進むと、I/O depth = Z で追加データを収集します。

図31.2 Random Writes の Increasing I/O のレイテンシー応答

Random Writes の Increasing I/O のレイテンシー応答

31.4.2. 第 2 段階: I/O リクエストサイズの影響

このテストの目的は、前の手順で決定する最適な I/O 深度で、テスト中のシステムの最適なパフォーマンスを得るブロックサイズを理解することです。
  1. 8 KB から 1 MB の範囲で、さまざまなブロックサイズ(2)を使用することで、固定 I/O 深度で全領域テストを実行します。テスト間でボリュームを再作成するために、読み取り領域を事前に入力してください。
  2. テスト入力差(書き込み)の例:
    # z=[see previous step]
    # for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=write --bs=$iosize\k --name=vdo --filename=/dev/mapper/vdo0 
          --ioengine=libaio --numjobs=1 --thread --norandommap --runtime=300 
          --direct=1 --iodepth=$z --scramble_buffers=1 --offset=0 --size=100g
      done
    
  3. 各データポイントでスループットとレイテンシーを記録し、次にグラフ化します。
  4. 繰り返しテストを実施して、4 つのテスト( --rw=randwrite、および --rw=read )を完了します。--rw=randread
結果で見つかる点がいくつかあります。この例では、以下のようになります。
  • 連続書き込みは、要求サイズ Y でピークスループットに達します。この曲線は、特定の要求サイズで設定可能なアプリケーション、または特定の要求サイズによって自然にパフォーマンスが低下する方法を示します。多くの場合、4 KB の I/O はマージの利点が得られるため、要求サイズが大きいほどスループットが向上します。
  • 連続読み込みは、Z 地点で同様のピークスループットに達します。ピーク後には、I/O の完了前に全体のレイテンシーが長くなります。スループットが増えることはありません。このサイズよりも大きい I/O を受け入れないようにデバイスを調整することが推奨されます。
  • 無作為な読み取りは、X 地点でピークスループットに達します。一部のデバイスは、要求サイズの無作為アクセスで、ほぼ連続的なスループット率を実現する可能性があり、純粋な連続アクセスと異なる場合は、より多くのペナルティーが発生します。
  • 無作為な書き込みは、Y 地点でピークスループットに達します。無作為な書き込みは、特に要求サイズや I/O 深度が大きい場合は、VDO は高パフォーマンスを実現します。
図31.3「要求サイズ vs.スループット分析およびキーのインフェクションポイント」。Red Hat のセールスエンジニアにお問い合わせください。さまざまな要求サイズでパフォーマンスを向上させるために必要な調整が必要かどうかを判断します。

図31.3 要求サイズ vs.スループット分析およびキーのインフェクションポイント

要求サイズ vs.スループット分析およびキーのインフェクションポイント

31.4.3. フェーズ 3: Mixing Read & Write I/O の影響

このテストの目的は、I/O 負荷(読み取り/書き込み)があり、最適な無作為なキューの深さと、4 KB から 1 MB までの要求サイズで、読み込み/書き込みの影響を分析するときに、VDO でアプライアンスがどのように動作するかを理解することです。この場合、適切なものを使用する必要があります。
  1. 固定 I/O 深度で全領域テストを実行し、8 KB から 256 KB の範囲で可変ブロックサイズ(2)を取得し、読み取り率を 10% 増分で設定し、0% から開始します。テスト間でボリュームを再作成するために、読み取り領域を事前に入力してください。
  2. テスト入力差差(読み取り/書き込みの組み合わせ)の例:
    # z=[see previous step]
    # for readmix in 0 10 20 30 40 50 60 70 80 90 100; do
        for iosize in 4 8 16 32 64 128 256 512 1024; do
          fio --rw=rw --rwmixread=$readmix --bs=$iosize\k --name=vdo \
              --filename=/dev/mapper/vdo0 --ioengine=libaio --numjobs=1 --thread \
              --norandommap --runtime=300 --direct=0 --iodepth=$z --scramble_buffers=1 \
              --offset=0 --size=100g
        done
      done
    
  3. 各データポイントでスループットとレイテンシーを記録し、次にグラフ化します。
図31.4「Performance Is Consistent across Varying Read/Write Mixes」 は、VDO が I/O 負荷に応答する方法の例を示しています。

図31.4 Performance Is Consistent across Varying Read/Write Mixes

Performance Is Consistent across Varying Read/Write Mixes
パフォーマンス(ホストアグリゲート)とレイテンシー(集約)は、読み取りと書き込みが混在する範囲全体で比較的一貫性があり、より低い最大書き込みスループットからより高い最大書き込みスループットまでの傾向があります。
この動作はストレージによって異なる場合がありますが、負荷が変化してもパフォーマンスが一貫しています。また、特定の読み取り/書き込みの組み合わせを示すアプリケーションのパフォーマンス期待値を理解できることが重要となります。予期しない結果を検出した場合には、Red Hat のセールスエンジニアが VDO か、変更が必要なストレージデバイス自体かを理解するのに役立ちます。
注記: 同様の応答の整合性が発生しないシステムは、多くの場合、構成が最適です。この場合は、Red Hat 営業エンジニアにお問い合わせください。

31.4.4. フェーズ 4: アプリケーション環境

この最終的なテストの目的は、実際のアプリケーション環境にデプロイされるときに VDO を使用したシステムの動作を理解することです。可能な場合は、実際のアプリケーションを使用し、これまでに学習されたナレッジを使用します。アプライアンスで許容可能なキュー深度を制限することを検討してください。可能であれば、アプリケーションが、VDO パフォーマンスに最も有益なブロックサイズで要求を発行するように調整することを検討してください。
要求サイズ、I/O の読み込み、読み取り/書き込みパターンなど。通常は予測が困難です。これは、アプリケーションのユースケース(Filers とバイザー vs など)によって異なるため、アプリケーションは、特定の操作やマルチテナントアクセスにより、I/O のタイプによって異なることが多くなります。
最終テストは、混合環境の一般的な VDO パフォーマンスを示しています。予想される環境に関する詳細が分かっている場合は、これらの設定もテストしてください。
テスト入力差差(読み取り/書き込みの組み合わせ)の例:
# for readmix in 20 50 80; do
    for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=rw --rwmixread=$readmix --bsrange=4k-256k --name=vdo \
          --filename=/dev/mapper/vdo0 --ioengine=libaio --numjobs=1 --thread \
          --norandommap --runtime=300 --direct=0 --iodepth=$iosize \
          --scramble_buffers=1 --offset=0 --size=100g
    done
  done
各データポイントでスループットとレイテンシーを記録し、次にグラフ図31.5「混合環境パフォーマンス」)します。

図31.5 混合環境パフォーマンス

混合環境パフォーマンス

このページには機械翻訳が使用されている場合があります (詳細はこちら)。