ネットワークのパフォーマンス、特に遅延を測定したいと思います。ネットワークを介してライブオーディオ/ビデオデータを送信するシステムのストレステストを実行しています。複数の同時接続(100接続など)がある場合、データが一方のパーティからもう一方のパーティに送信されるまでに時間がかかりすぎることがわかります。現在、サーバーのパフォーマンスが原因なのか、ネットワークの問題なのかはわかりません。
サーバーの負荷は非常に低いですが(CPU負荷の約15%)、スレッドのコンテキスト切り替えが原因でサーバーの問題である可能性があり、データがサーバーの処理開始を待機している可能性があります。私の設定は次のとおりです。
クライアント->ロードバランサー->プロキシサーバー->アプリケーションサーバー->エージェント
2つの要素ごとにデータが送信されるまでにかかる時間を測定したい(ロードバランサーのみを省略)。クライアントとプロキシサーバー間。
サーバーはWindowsServer 2008R2、クライアントとエージェントはWindows XP/7です。
すべてのマシンにwiresharkをインストールし、クロックを同期して、すべてのマシンでキャプチャされたパケットを手動でチェックできると思いました。しかし、もっと良い解決策があることを願っています。
RussinovichからのPspingは、ICMP ping、TCP ping、帯域幅テストなど)を実行します。
http://technet.Microsoft.com/en-us/sysinternals/jj729731.aspx
サーバーコンポーネントとクライアントコンポーネントがあるため、より高度なテストを行うには、両方のマシンで実行する必要があります。
Wiresharkは、症状を示している1つまたは2つのステーションをスポットチェックするのに役立つ可能性があります。優れたラウンドトリップ時間(RTT)グラフ機能を備えています。実際にパケットを失っている場合は、それ以上のものが必要になります。相関キャプチャを実行する必要があります(両側に1つずつ)。パケットが送信されても受信されない場所、または再送信などを特定します。また、多くの再送信が発生しているかどうかを確認する必要があります。
小さなTCPパケットを大量に送信している場合、200ミリ秒のデフォルトの遅延確認応答が発生している可能性があります。症状が再現可能な場合は、パケットキャプチャに次のように表示されることがあります。パケットと対応するACKの間の200ミリ秒のギャップ。
ネットワークをテストしているだけの場合、Wiresharkはやり過ぎのようです。 ping
は、テスト中に設定された数のpingを実行して結果を分析するか、スケジュールに従ってテストを実行してデータをに保存する小さなプログラムをさらに作成するだけで機能します。 CSVファイル。これは、ネットワーク上の任意の2つのノード間で実行し、その間の遅延をテストすることができます。
プログラムの合計レイテンシーを探している場合は、別のものが必要になります。
同じネットワーク上の2つの異なるホスト間で正確に表示されない可能性があるミリ秒の違いを探すため、これをテストするためにwiresharkと同期クロックを信頼しません。