インターネットネットゲートウェイを経由する、VPC 内の Amazon EC2 Windows インスタンスとオンプレミスのホスト間でのワークパフォーマンス問題をトラブルシューティングするにはどうすればよいですか?
最終更新日: 2019 年 10 月 7 日
インターネットゲートウェイを経由する、Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスとオンプレミスのホストの間でネットワークパフォーマンス問題が発生しています。これらのパケット損失またはレイテンシーの問題をトラブルシューティングするにはどうすればよいですか?
解決方法
注意: トラブルシューティングを開始する前に、送信元 IP アドレスと送信先 IP アドレスを特定してください。送信先が URL の場合は、nslookup コマンドを使用して IP アドレスを判断します。URL には動的 IP アドレスを使用するものもあるため、IP アドレスが変更される場合があることに注意してください。このコマンドを複数回実行して、IP アドレスが一定かどうかを確認します。
ECN 機能のチェック
1.次のコマンドを実行して、明示的輻輳通知 (ECN) 機能が有効になっているかどうかを判断します。
netsh interface tcp show global
2.ECN 機能が有効になっている場合は、次のコマンドを実行して無効化します。
- netsh interface tcp set global ecncapability=disabled
3.パフォーマンスが改善されない場合は、次のコマンドを使用して ECN 機能を再度有効にすることができます。
netsh interface tcp set global ecncapability=enabled
ホップの検証と TCP ポート接続性のトラブルシューティング
まず、MTR または tracert を使用してホップを検証します。
MTR メソッド
1. WinMTR をダウンロードしてインストールします。
2. [Host] セクションに送信先 IP を入力してから、[Start] を選択します。
3. テストを 1 分間実行した後、[Stop] を選択します。
4. [Copy text to clipboard] を選択して、テキストファイルに出力を貼り付けます。
5. % 列で、送信先に伝播された損失を探します。
注意: No response from host メッセージがあるホップは無視してください。このメッセージは、これらの特定のホップが ICMP プローブに応答していないことを示します。
6. ボトムアップアプローチを使用して MTR レポートのホップを検証します。例えば、最後のホップまたは送信先で損失をチェックした後で、それに先行するホップを検証します。
tracert メソッド
MTR をインストールしたくない場合は、tracert コマンドユーティリティツールを使用できます。
1. tracert を送信先の URL または IP アドレスに対して実行します。
2. ラウンドトリップタイム (RTT) が突然急上昇したホップを探します。RTT の突然な急上昇は、高負荷がかかっているノードがあることを示し、そのためにトラフィックにおけるレイテンシーまたはパケットドロップが誘発されます。
次に、TCP ポートの接続性を確認します。
注意: WinMTR と tracert はどちらも ICMP ベースであるため、tracetcp を使用して TCP ポート接続性のトラブルシューティングを行うことができます。
1. WinPcap と tracetcp をダウンロードします。
2. Tracetcp ZIP ファイルを展開します。
3. tracetcp.exe を C ドライブにコピーします。
4. WinPcap をインストールします。
5. コマンドプロンプトを開き、C:\Users\username>cd \ コマンドを使用して WinPcap を C ドライブにルートします。
6. tracetcp.exe hostname:port コマンド、または tracetcp.exe ip:port コマンドを使用して tracetcp を実行します。
Windows タスクマネージャーのチェック
送信元インスタンスまたは送信先インスタンスにアクセスできる場合は、Windows タスクマネージャーをチェックします。CPU とメモリの使用率、または平均負荷の問題を探します。
パケットキャプチャの取得
注意: ベストプラクティスは、最初にパケットキャプチャを開始してからトラフィックを開始することです。このアプローチは、このフローのすべてのパケットをキャプチャするために役立ちます。
1. Wireshark をインストールして、パケットキャプチャを取得します。
2. (ip.addr eq source_IP) && (tcp.flags.syn == 1) フィルターを使用して、パケットキャプチャにある特定の送信元の間におけるトラフィックを分離させます。出力には、その送信元 IP によって開始されたすべての tcp ストリームが表示されます。
3. 関連する送信元 IP と送信先 IP がある行を選択します。
4. コンテキスト (右クリック) メニューを選択してから、Follow、TCP Stream と選択します。こうすることにより、調査したい送信元 IP と送信先 IP の間における TCP フローがわかります。
5. 再送信、重複するパケット、または TCP window full や Window size zero といった TCP ウィンドウサイズの通知を探します。これらの通知は、TCP バッファの容量が不足していることを示している可能性があります。