AWS re:Postを使用することにより、以下に同意したことになります AWS re:Post 利用規約

Amazon EBS ボリュームがマイクロバーストしているかどうかを確認し、パフォーマンスへの影響を抑える方法を教えてください。

所要時間2分
0

使用している Amazon Elastic Block Store (Amazon EBS) ボリュームは、Amazon CloudWatch ではスループットまたは 1 秒あたりの入出力オペレーション (IOPS) の制限に達していません。しかし、ボリュームにスロットルが発生し、長い遅延やキューがあります。

解決策

CloudWatch メトリクスは、すべての Amazon EBS ボリュームタイプの IOPS とスループットを監視するのに便利です。CloudWatch メトリクスは 1 分間隔でサンプルを収集します。ただし、I/O 操作はミリ秒単位で実行されます。収集間隔よりも短い時間間隔でボリュームの IOPS またはスループットが高くなり、バーストが発生した場合、CloudWatch はそのバーストをキャプチャしません。この障害は、メトリクスの監視は 1 秒単位で行われることが原因で発生します。

CloudWatch メトリクスを使用して、マイクロバーストと思われるものを特定する

VolumeIdleTime メトリクスを確認します。

VolumeIdleTime メトリクスグラフは、指定された期間において、読み取りまたは書き込み操作が送信されなかった秒数を示します。VolumeIdleTime の値が大きい場合、ボリュームは収集期間の大半でアイドル状態であったことが示唆されます。同じ期間に IOPS またはスループットが十分に高かった場合、そのボリュームでマイクロバーストが発生したことが示唆されます。

EBS ボリュームが受信した平均スループットと平均 IOPS を計算する

次の式を使用して EBS ボリュームの平均スループットを計算します。

実際の平均スループット (Bps 単位) = (Sum(VolumeReadBytes) + Sum(VolumeWriteBytes) ) / (Period - Sum(VolumeIdleTime) )

次の式を使用して EBS ボリュームの平均 IOPS を計算します。

Ops 単位での推定平均 IOPS = (Sum(VolumeReadOps) + Sum(VolumeWriteOps) ) ÷ ( Period - Sum(VolumeIdleTime) )

CloudWatch を使用してマイクロバーストイベントを取得する

次の手順を実行します。

  1. CloudWatch コンソールを開きます。
  2. [すべてのメトリクス] を選択します。
  3. ボリューム ID を使用して、マイクロバーストが発生したボリュームを検索します。
  4. []EBS を選択し、次に [ボリュームごとのメトリクス] を選択します。
  5. スループットのメトリクスを確認するには、VolumeReadBytesVolumeWriteBytesVolumeIdleTime を選択します。
  6. [グラフ化されたメトリクス] を選択します。
  7. [統計][合計] を選択し、[期間][1 分] を選択します。
  8. [数式を追加] で、[空の式で始める] を選択します。
  9. [式][詳細] には、VolumeReadBytesVolumeWriteBytesVolumeIdleBytes に割り当てられたグラフ ID を使用します。これにより、推定平均スループット (Bps) の式が作成されます。
    例: (m1+m2)/(60-m3)

グラフにボリュームの最大スループットよりも大きい値が表示されている場合、ワークロードはマイクロバースト状態です。

I/O 操作によるマイクロバーストが発生したかどうかを確認するには、前の手順に従います。次に、ステップ 5 の VolumeReadBytesVolumeWriteBytesVolumeIdleTimeVolumeReadOpsVolumeWriteOpsVolumeIdleTime に置き換えます。

OS レベルのツールを使用してマイクロバーストを確認する

ボリュームがビジー (VolumeIdleTime が短い) 状態の場合も、EBS ボリュームでマイクロバーストが発生することがあります。VolumeIdleTime が短いボリュームでは、ワークロードがマイクロバーストしているかどうかを判断するには、サンプルを詳細に収集する OS レベルのツールの方が効率的です。

Linux

マウントされたすべてのボリュームの I/O 統計値を 1 秒の精度で報告するには、iostat コマンドを実行します。

iostat -xdmzt 1

詳細については、Linux man ページのウェブサイトで iostat(1) を参照してください。

注: iostat ツールは sysstat パッケージの一部です。iostat コマンドが見つからない場合は、次のコマンドを実行して Amazon Linux Application Machine Images (AMI) に sysstat をインストールします。

sudo yum install sysstat -y

スループット制限に達しているかどうかを判断するには、出力の rMBpswMBps を確認します。rMBps + wMBps がボリュームの最大スループットよりも大きい場合、ボリュームでマイクロバーストが発生します。

IOPS の上限に達しているかどうかを判断するには、出力の rpswps を確認します。**rps + wps ** がボリュームの最大 IOPS よりも大きい場合、ボリュームにマイクロバーストが発生します。

Windows

Windows Performance Monitor で perfmon コマンドを実行します。詳細については、「IOPS とスループットの要件を判断する」を参照してください。

アプリケーションに合わせてボリュームのサイズや種類を変更し、マイクロバーストを防止する

マイクロバーストは、アプリケーションで I/O スロットリングや I/O 遅延の原因となる場合があります。これを防ぐために、マイクロバーストレベルでも、必要な IOPS とスループットに対応するタイプとサイズにボリュームを変更します。詳細については、「Amazon EBS ボリュームの種類」を参照してください。アタッチされているすべての EBS ボリュームにインスタンスがプッシュできる IOPS およびスループットに対する制限があります。

ワークロードに対するボリュームのベンチマークを実施し、テスト環境でワークロードに安全に対応できるボリュームタイプを確認することがベストプラクティスです。詳細については、「Amazon EBS ボリュームのベンチマーク」を参照してください。

AWS公式
AWS公式更新しました 1ヶ月前
コメントはありません