CPU、メモリ、EBS ボリューム I/O、およびネットワークメトリクスをモニタリングして、Amazon EC2 Windows インスタンスのパフォーマンスが低下する問題をトラブルシューティングして解決する方法を知りたいと考えています。
簡単な説明
Amazon Elastic Compute Cloud (Amazon EC2) Window のインスタンスのパフォーマンスには、以下の理由が影響する可能性があります。
- CPU 使用率が高い
- メモリ使用量の増加
- Amazon Elastic Block Store (Amazon EBS) ボリューム I/O
- AWS ドライバーが古い
- ネットワーク帯域幅の問題
- バーストクレジットが枯渇した
解決策
オートメーションランブックを使用してパフォーマンスの問題をトラブルシューティングする
Windows インスタンスの CPU またはメモリのパフォーマンスが高い問題を特定するには、AWS Support-TroubleshoosPerformance AWS Systems Manager Automation ランブックを使用します。パフォーマンスの問題が発生した場合は、ランブックを実行するのがベストプラクティスです。
ランブックを開始する前に、AWS Identity and Access Management (IAM) のユーザーまたはロールに必要な権限があることを確認してください。キャプチャしたログを Amazon Simple Storage Service (Amazon S3) にアップロードするには、インスタンスプロファイルに必要な権限があることを確認してください。詳細については、AWSSupport-TroubleshootWindowsPerformance の必要な IAM 権限セクションを参照してください。
ランブックを設定するには、AWSSupport-TroubleshootWindowsPerformance の使用手順セクションを参照してください。
**注:**このランブックでは、EC2Rescure がキャプチャしたプロセスダンプとログは分析されません。ログを確認する必要がある場合は、手動で確認できます。
ランブックの出力には、パフォーマンスメトリクスの概要が記載されています。パフォーマンスメトリクスに基づいて、最も多くのリソースを使用するプロセスを特定できます。その他のトラブルシューティングについては、次のセクションのアクションを実行してください。
インスタンスタイプのパフォーマンスが低下しているかどうかを判断する
EC2 インスタンスタイプを特定して、パフォーマンスの低いインスタンスタイプのせいでそのインスタンスのパフォーマンスが抑制されているかのどうかを判断します。
T2 もしくは T3 インスタンスの CPU 使用率が高い場合は、バースト可能なパフォーマンスを無制限に設定すると、インスタンスは必要な期間、高い CPU 使用率を維持します。
CPU とメモリの使用状況を監視する
CPU とメモリの使用率が高いプロセスを監視するには、Windows タスクマネージャ、リソースマネージャ、またはパフォーマンスモニタを使用します。詳細については、CPU がスロットリングされていないときに EC2 Windows インスタンスの CPU 使用率が高いことを診断する方法を参照してください。
EBS メトリクスを確認する
Amazon CloudWatch を使用すれば EBS メトリクスを確認することができます。バーストバランスメトリクスまたは IOPS CloudWatch メトリクスを見つけ、ボリュームで利用可能な I/O バストクレジットがあるかを確認します。また、ボリュームがベースラインのパフォーマンスを超えていないかも確認してください。
1 つのインスタンスに複数のアプリケーションがあると、IOPS の需要が増加します。インスタンスのパフォーマンスを向上させるには、アプリケーションに追加の非ルート EBS ボリュームを使用します。また、ルートボリュームをオペレーティングシステム (OS) のみに使用します。
AWS ドライバーを更新する
古い AWS ドライバは、インスタンスのパフォーマンスに関する問題を引き起こす可能性があります。CPU、メモリ、またはネットワークの使用率が高い場合、または接続の問題が断続的に発生する場合は、インスタンスの AWS ドライバを更新します。
インスタンスにインストールされている AWS ドライバーを確認するには、Windows PowerShell で管理者として次のコマンドを実行します。
dism /online /get-drivers /format:table | findstr Amazon
ena.inf、awsnvme.inf または xenvbd.inf ドライバーがインスタンスにインストールされている場合は、ドライバーを最新バージョンに更新します。
インスタンスタイプに基づいて、インスタンスに AWS NVMe および Elastic Network Adapter (ENA)ドライバーが必要かどうかを判断します。インスタンスに AWS NVMe または ENA ドライバーが必要な場合は、最新のドライバーをダウンロードしてインスタンスにインストールします。
T2 インスタンスを含め、サポートされているすべてのインスタンスタイプの Windows インスタンスの AWS PV ドライバーをアップグレードするのがベストプラクティスです。
ネットワークインとネットワークアウトのメトリクスを監視する
インスタンスの ネットワークインとネットワークアウトのメトリクスを計算すると、インスタンスのネットワーク帯域幅の問題を診断しやすくなります。
ネットワーク帯域幅と、1 秒あたりのパケット数のパフォーマンスを向上させ、レイテンシーを一貫して低減するには、拡張ネットワーキングを有効にします。サポートされているインスタンスタイプについては、まず、そのインスタンスタイプで利用できる拡張ネットワーキングメカニズムを決定してください。次に、ENA または Intel 82599 VF インターフェイスを使用して拡張ネットワーキングを有効にします。
関連情報
CPU がスロットリングされているとき、T2 または T3 EC2 Windows インスタンスの CPU 使用率が高くなる問題を解決するにはどうすればいいですか?
AWS サポート自動化ワークフロー (SAW)
オートメーションの設定
オートメーションの実行