2つのLinuxホスト間のレイテンシーのトラブルシューティング方法


16

2台のLinuxホスト間の遅延は約.23msです。それらは1つのスイッチで接続されています。PingとWiresharkが遅延数を確認します。しかし、この遅延の原因を可視化することはできません。遅延の原因がホストAまたはBのNICにあるのか、スイッチまたはケーブルにあるのかを知るにはどうすればよいですか?

更新:.23ミリ秒のレイテンシは、非常に高い頻度でメッセージを送信する既存のアプリケーションにとっては悪いものであり、.1ミリ秒に下げることができるかどうかを確認しようとしています


2
なぜ.23msは遅延が悪いと思いますか?それはすごい待ち時間です。
SpacemanSpiff

6
クロスケーブルで直接接続します。同じ遅延がある場合、原因はホストの1つです。同じ遅延がない場合、原因はスイッチまたはケーブル接続です。
-joeqwerty

1
同意しました、問題は何ですか?0.23msの遅延は、2台のマシンが隣り合って座っている場合よりも短くなります。
マイケルハンプトン

@joeqwerty 2つのシステムがクロスオーバーケーブルで接続されている場合、それらはどのように相互に配置されますか?ARPは引き続き機能しますか?TCPはまだ機能しますか?
ジム

1
どちらも同じスイッチに接続されている場合と同じように機能します。ケーブルは単に通信する物理的な媒体です。OSIモデルの7層すべて(または、必要に応じてDARPAモデルの4層)は、現在とまったく同じように機能します。
joeqwerty

回答:


15

一般的に、いくつかの高度なスイッチをiperfユーティリティに使用して、システム間のネットワークパフォーマンス、特に遅延とジッターのビューを取得できます...

これはUDPまたはTCPベースのメッセージストリームですか?

上記について、セットアップに関する詳細情報が必要であるとコメントしました。これが低レイテンシのメッセージングアプリケーションである場合、ハードウェア、ドライバー、およびOSの調整に及ぶチューニングと最適化の技術の世界があります。しかし、本当に、もっと情報が必要です。

編集:

さて、これはTCPメッセージングです。/etc/sysctl.confパラメーターを変更しましたか?送信/受信バッファはどのように見えますか?リアルタイムカーネルだけを使用してもあまり効果はありませんが、割り込みをCPUにバインドするポイントに移動すると、メッセージングアプリのリアルタイムの優先順位を変更し(chrttuned-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_maxnet.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

遅延に敏感なメッセージングアプリケーションです。典型的なOSはkernel-2.6.32-279.11.1.el6.x86_64ですが、カーネル3.2.23-rt37.56.el6rt.x86_64を使用してホストをロードし、違いが生じるかどうかを確認します。しかし、それはほとんど同じでした。メッセージサイズは1KB〜3KBの間で異なります。すべての通信はTCPを介して行われます。
ジム

OS Red Hat MRGはありますか?
ewwhite

現時点では単純なRedhat 6.3ですが、MRGも可能です。上で述べたように、両方試してみましたが、レイテンシは同じでした。どのような調整可能なパラメーターを考慮する必要がありますか?
ジム

ハードウェアとNICのセットアップを知りたいです。モデルの切り替えが役立ちます。調整可能パラメータの場合、6.3で注目すべき明らかな領域はtuned-admプロファイルです。
ewwhite

デュアルイーサネットコントローラー:Emulex Corporation OneConnect 10Gb NIC(rev 02)および16コアAMD Family 10hプロセッサー、それぞれ2400 MHz。
ジム
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.