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

所要時間2分
0

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

解決策

CloudWatch メトリクスは 1 分ごとにサンプルを収集します。ただし、I/O 操作はミリ秒単位で行われます。収集間隔よりも短い期間でボリュームの IOPS またはスループットが高くなり、バーストが発生した場合、CloudWatch はそのバーストをキャプチャしません。

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

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

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

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

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

推定平均スループット = ( Sum(VolumeReadBytes) + Sum(VolumeWriteBytes) ) / Ceil(Period - Sum(VolumeIdleTime))

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

推定平均 IOPS = ( Sum(VolumeReadOps) + Sum(VolumeWriteOps) ) / Ceil(Period - Sum(VolumeIdleTime))

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

次の手順を実行します。

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

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

I/O 操作が原因でマイクロバーストが発生したかどうかを確認するには、上記の手順を完了します。ステップ 5 の VolumeReadBytesVolumeWriteBytesVolumeIdleTimeVolumeReadOpsVolumeWriteOpsVolumeIdleTime に置き換えます。

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

VolumeIdleTime が短い場合も、EBS ボリュームでマイクロバーストが発生する可能性があります。ボリュームの VolumeIdleTime が短い場合は、詳細なサンプル収集機能を備えたオペレーティングシステムレベルのツールを使用すると、ワークロードでマイクロバーストが発生しているかどうかを効率的に判断できます。

Linux

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

iostat -xdmzt 1

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

sudo yum install sysstat -y

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

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

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

Windows

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

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

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

ワークロードに対してボリュームのベンチマークを実施し、ワークロードに安全に対応できるボリュームタイプをテスト環境を使用して判断することをおすすめします。

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

関連するコンテンツ