Windows 7
のZeroMQで、奇妙で説明できない現象が見られました.TCP経由でメッセージを送信しています。 (またはinproc
、ZeroMQはWindowsでシグナリングに内部的にTCPを使用するため)。Windows7上のTCP/IPがウォームアップに500回送信するのはなぜですか?
この現象は、最初の500個のメッセージが遅く到着し、遅く到着し、待ち時間が着実に増加するという現象です。次に、CPU /ネットワークの競合によって引き起こされるスパイクを除き、レイテンシが低下し、メッセージが一貫して高速に到着します。
問題は、ここで説明されています。https://github.com/zeromq/libzmq/issues/1608
それは一貫して500件のメッセージです。遅れなく送信すると、メッセージは一括送信されるので、数千回の送信を超える現象が見られます。センドを遅らせるとグラフがよりはっきり見えます。センド間で50〜100ミリ秒も遅らせることさえ変わらない。
メッセージのサイズも無関係です。私は10バイトメッセージと10Kメッセージでテストしましたが、同じ結果が得られました。
最大レイテンシは常に2ミリ秒(2,000マイクロ秒)です。
Linuxボックスでは、この現象はありません。
私たちがやってみたいのは、この初期のカーブを取り除くことです。そのため、通常の低レイテンシ(約20-100usec)で新鮮な接続を維持します。
更新:問題は、のみのWindows 上を発生するようWindowsの10も8上に表示されません。
ワイルドハンチング:これがWin7のTCPオートチューニングに関連するのではないかと思います。http://www.sevenforums.com/network-sharing/74556-enable-disable-tcp-auto-tuning.html – keithmo
私たちはそれをチェックしています。この現象は、Windows 10でもWindows 8でも起こりそうにないことが分かります。それで、実際にはWindows 7の自動チューニング機能になる可能性があります。 –