Amazon Elastic Compute Cloud (Amazon EC2) インスタンスでの Amazon Elastic Block Store (Amazon EBS) ボリュームのパフォーマンスをトラブルシューティングをしたいです。
簡単な説明
EBS ボリュームで発生する可能性があるパフォーマンスの問題を次に示します。
- アプリケーションのパフォーマンスが遅い
- インスタンスのパフォーマンスが遅い
- データアクセス時間が長い
- 読み取りエラーと書き込みエラー
- ディスクにアクセスできない、またはオフラインと表示される
- ディスク入出力操作 (IOPS)、キュー長、スループット、レイテンシーが高い
- ドライバーが古い
**注:**ベストプラクティスについては、下記を参照してください。Amazon EBS ボリュームのパフォーマンス。
解決策
パフォーマンスの問題が発生するタイミングを特定する
パフォーマンスの問題が発生する期間を特定します。その後、その期間の EBS メトリクスを分離することで、後のトラブルシューティング手順で確認できます。たとえば、ピーク時の営業時間帯にはパフォーマンスが低下する可能性があります。
EBS ボリュームのステータスチェックを確認する
- Amazon EC2 コンソールを開きます。
- [Volume] を選択します。[ボリュームのステータス] 列には各ボリュームのステータスが表示されることに注意してください。
- ボリュームを選択し、[ステータスチェック] タブを選択します。
- ボリュームに障害がある場合は、「障害のあるボリュームでの作業」を参照してください。
詳細については、「ボリュームのステータスを監視する」を参照してください。
ボリュームとインスタンスの情報を収集する
ボリュームタイプ、ボリュームサイズ、IOPS、スループット制限など、ボリュームに関する情報を収集します。詳細については、以下を参照してください。
CloudWatch メトリクスを収集する
Amazon EBS の Amazon CloudWatch メトリクスを確認します。グラフ内のすべてのスパイクに注意してください。平均パフォーマンスの計算は次のとおりです。
- 平均 IOPS = (読み取りオペレーション (Ops/秒) + 書き込みオペレーション (Ops/秒)) /期間 (秒単位)
- 平均スループット = (読み取りスループット (KiB/s) + 書き込みスループット (KiB/s))/期間 (秒単位)
- 平均キュー長 (オペレーション)
- レイテンシー = (平均読み取りレイテンシー (ms/op) + 平均書き込みレイテンシー (ms/op)) /期間 (秒単位)
- 平均 IO サイズ = (平均読み取りサイズ (KiB/op) + 平均書き込みサイズ (KiB/op))/期間 (秒単位)
詳細については、「CloudWatch を使用して I/O の特性を監視する」を参照してください。
インスタンスとボリュームの属性に対するメトリクスを確認する
CloudWatch メトリクスを確認し、ステップ 3 で収集したボリュームおよびインスタンス情報と比較します。問題を次のカテゴリに分類してください。
- ボリューム制限: ワークロードが原因でボリュームクォータの超過が起こる場合は、EBS ボリュームタイプの変更を検討してください。
インスタンスレベルの制限: インスタンスタイプの変更を検討してください。
**注:**EBS ボリュームタイプと EC2 インスタンスタイプの変更にはコストがかかります。変更する前に、価格の違いを必ず理解してください。詳細については、以下を参照してください。
注: CloudWatch メトリクスでは、パフォーマンスが遅いにもかかわらず、ボリュームまたはインスタンスの制限に達していないように表示される場合があります。この場合は、インスタンスでマイクロバーストが発生しているかどうかを確認してください。
サービスレベルのイベントを記録する
調査している期間中に Amazon EBS サービスまたはボリュームに重大なイベントが発生したと思われる場合は、AWS Health Dashboard にイベントがないか確認してください。
関連情報
ベンチマーク EBS ボリューム
Amazon CloudWatch による Amazon EBS のパフォーマンスの監視と把握
Amazon EBS プロビジョンド IOPS ボリュームのパフォーマンスを最適化する方法を教えてください