2台のLinuxホスト間の遅延は約.23msです。それらは1つのスイッチで接続されています。PingとWiresharkが遅延数を確認します。しかし、この遅延の原因を可視化することはできません。遅延の原因がホストAまたはBのNICにあるのか、スイッチまたはケーブルにあるのかを知るにはどうすればよいですか?
更新:.23ミリ秒のレイテンシは、非常に高い頻度でメッセージを送信する既存のアプリケーションにとっては悪いものであり、.1ミリ秒に下げることができるかどうかを確認しようとしています
2台のLinuxホスト間の遅延は約.23msです。それらは1つのスイッチで接続されています。PingとWiresharkが遅延数を確認します。しかし、この遅延の原因を可視化することはできません。遅延の原因がホストAまたはBのNICにあるのか、スイッチまたはケーブルにあるのかを知るにはどうすればよいですか?
更新:.23ミリ秒のレイテンシは、非常に高い頻度でメッセージを送信する既存のアプリケーションにとっては悪いものであり、.1ミリ秒に下げることができるかどうかを確認しようとしています
回答:
一般的に、いくつかの高度なスイッチをiperfユーティリティに使用して、システム間のネットワークパフォーマンス、特に遅延とジッターのビューを取得できます...
これはUDPまたはTCPベースのメッセージストリームですか?
上記について、セットアップに関する詳細情報が必要であるとコメントしました。これが低レイテンシのメッセージングアプリケーションである場合、ハードウェア、ドライバー、およびOSの調整に及ぶチューニングと最適化の技術の世界があります。しかし、本当に、もっと情報が必要です。
編集:
さて、これはTCPメッセージングです。/etc/sysctl.conf
パラメーターを変更しましたか?送信/受信バッファはどのように見えますか?リアルタイムカーネルだけを使用してもあまり効果はありませんが、割り込みをCPUにバインドするポイントに移動すると、メッセージングアプリのリアルタイムの優先順位を変更し(chrt
)tuned-adm
、システムのプロファイルを変更することが役立つ場合があります...
これは一般的なEL6システムのように思えるので、パフォーマンスチューニングベースラインを設定する簡単な方法は、システムのパフォーマンスプロファイルをチューニングされたフレームワーク内で利用可能な別のプロファイルに変更することです。その後、そこからビルドします。
あなたの場合:
yum install tuned tuned-utils
tuned-adm profile latency-performance
違いを示すクイックマトリックス:
ハードウェアについて教えてください。CPU、NIC、メモリの種類は?
したがって、リンクをテストするのは面白いかもしれません...このiperfテストを試してください...
1つのシステムで、iperf UDPリスナーを起動します。一方、最初の接続を開きます...簡単な回線品質テスト。
# Server2
[root@server2 ~]# iperf -su
# Server1
[root@server1 ~]# iperf -t 60 -u -c server2
私の場合、低ジッターと短いping時間:
------------------------------------------------------------
Server listening on UDP port 5001
Receiving 1470 byte datagrams
UDP buffer size: 224 KByte (default)
------------------------------------------------------------
[ 3] local 192.168.15.3 port 5001 connected with 172.16.2.152 port 36312
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 3] 0.0-20.0 sec 2.50 MBytes 1.05 Mbits/sec 0.012 ms 0/ 1785 (0%)
PING server1 (172.16.2.152) 56(84) bytes of data.
64 bytes from server1 (172.16.2.152): icmp_seq=1 ttl=63 time=0.158 ms
64 bytes from server1 (172.16.2.152): icmp_seq=2 ttl=63 time=0.144 ms
ハードウェアとインターフェイスのエラーをチェックします。必要に応じて、システム間の切り替えを排除し、直接接続がどのように見えるかを確認してください。高いジッター(分散)が必要ないため、確認してください。
しかし、正直なところ、現在の設定でpingを実行している場合でも、アプリケーションを終了するには十分ではありません。私はあなたの送信/受信バッファを調整する道をたどります。参照:net.core.rmem_max
、net.core.wmem_max
およびそのデフォルト...
次のようなもの/etc/sysctl.conf
(好みに合わせて調整してください):
net.core.rmem_default = 10000000
net.core.wmem_default = 10000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
tuned-adm
プロファイルです。