検索

4.5. VDO パフォーマンスにおける I/O リクエストサイズの影響のテスト

download PDF

このテストを使用して、最適な I/O 深度で VDO のパフォーマンスを最適化するブロックサイズを指定できます。

テストでは、8 KiB から 1 MiB の範囲でさまざまなブロックサイズを使用して、固定 I/O 深度で全領域テストを実行します。

前提条件

4.5.1. VDO での連続書き込みに対する I/O 要求サイズの影響のテスト

このテストは、異なる I/O 要求サイズで VDO ボリュームへの連続書き込み操作を実行する方法を決定します。

手順

  1. 新しい VDO ボリュームを作成します。

    詳細は、「パフォーマンステスト用の VDO ボリュームの作成」 を参照してください。

  2. テストボリュームで書き込み fio ジョブを実行して、テストがアクセスする領域を事前に入力します。

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 連続書き込みテストについて報告されたスループットとレイテンシーを記録します。

    # for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=write \
          --bs=${iosize}k \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO テストボリュームを削除します。

    詳細は、「VDO パフォーマンステストボリュームのクリーンアップ」 を参照してください。

4.5.2. VDO での無作為な書き込みに対する I/O 要求サイズの影響のテスト

このテストは、異なる I/O 要求サイズで VDO ボリュームへの無作為な書き込み操作を実行する方法を決定します。

重要

各 I/O 要求サイズのテスト実行の間に VDO ボリュームを再作成する必要があります。

手順

I/O 要求サイズが 4k8k16k32k64k128k256k512k、および 1024k の場合は、以下の手順を個別に実行します。

  1. 新しい VDO ボリュームを作成します。

    詳細は、「パフォーマンステスト用の VDO ボリュームの作成」 を参照してください。

  2. テストボリュームで書き込み fio ジョブを実行して、テストがアクセスする領域を事前に入力します。

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 無作為な書き込みテストについて報告されたスループットとレイテンシーを記録します。

    # fio --rw=randwrite \
          --bs=request-size \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO テストボリュームを削除します。

    詳細は、「VDO パフォーマンステストボリュームのクリーンアップ」 を参照してください。

4.5.3. VDO での連続読み込みに対する I/O 要求サイズの影響のテスト

このテストは、異なる I/O 要求サイズで VDO ボリュームへの連続読み取り操作を実行する方法を決定します。

手順

  1. 新しい VDO ボリュームを作成します。

    詳細は、「パフォーマンステスト用の VDO ボリュームの作成」 を参照してください。

  2. テストボリュームで書き込み fio ジョブを実行して、テストがアクセスする領域を事前に入力します。

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 連続読み取りテストについて報告されたスループットとレイテンシーを記録します。

    # for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=read \
          --bs=${iosize}k \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO テストボリュームを削除します。

    詳細は、「VDO パフォーマンステストボリュームのクリーンアップ」 を参照してください。

4.5.4. VDO での無作為な読み込みに対する I/O 要求サイズの影響のテスト

このテストは、異なる I/O 要求サイズで VDO ボリュームへの無作為な読み取り操作を実行する方法を決定します。

手順

  1. 新しい VDO ボリュームを作成します。

    詳細は、「パフォーマンステスト用の VDO ボリュームの作成」 を参照してください。

  2. テストボリュームで書き込み fio ジョブを実行して、テストがアクセスする領域を事前に入力します。

    # fio --rw=write \
          --bs=8M \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --thread \
          --direct=1 \
          --scramble_buffers=1
  3. 無作為な読み取りテストで報告されたスループットとレイテンシーを記録します。

    # for iosize in 4 8 16 32 64 128 256 512 1024; do
      fio --rw=read \
          --bs=${iosize}k \
          --name=vdo \
          --filename=/dev/mapper/vdo-test \
          --ioengine=libaio \
          --numjobs=1 \
          --thread \
          --norandommap \
          --runtime=300 \
          --direct=1 \
          --iodepth=optimal-depth \
          --scramble_buffers=1 \
          --offset=0 \
          --size=100g
      done
  4. VDO テストボリュームを削除します。

    詳細は、「VDO パフォーマンステストボリュームのクリーンアップ」 を参照してください。

4.5.5. 異なる I/O 要求サイズでの VDO パフォーマンスの分析

以下の例は、異なる I/O 要求サイズで記録された VDO スループットとレイテンシーを示しています。

例4.2 I/O リクエストサイズ分析

図4.3 要求サイズ対スループットの分析と重要な変曲点

要求サイズ対スループットの分析と重要な変曲点

サンプルの結果を分析します。

  • 連続書き込みは、要求サイズ Y でピークスループットに達します。

    この曲線は、設定可能なアプリケーション、特定の要求サイズによって自然に支配されるアプリケーションが、パフォーマンスをどのように認識できるかを示しています。多くの場合、4 KiB の I/O 操作では結合が有効になるため、要求サイズが大きいほどスループットが向上します。

  • 連続読み込みは、Z 地点で同様のピークスループットに達します。

    これらのピーク後、I/O 操作が完了するまでの全体的なレイテンシーは、スループットを追加することなく増加します。このサイズを超える I/O 操作を受け入れないようにデバイスを調整する必要があります。

  • 無作為な読み込みは、X 地点でピークスループットに達します。

    特定のデバイスは、要求サイズの無作為アクセスで、ほぼ連続的なスループット率を実現する場合がありますが、純粋な連続アクセスと異なる場合は、より多くのペナルティーを受けることになります。

  • 無作為な書き込みは、Y 地点でピークスループットに達します。

    無作為な書き込みは、重複排除デバイスの相互作用が最も多く、VDO は、特に要求サイズまたは I/O 深度が大きい場合に高いパフォーマンスを実現します。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.