UDP RSSキューが機能していないことがわかりました。Intel(R)イーサネットコンバージドネットワークアダプターX550-T2は、構成されていてもジャンボパッケージを送信しないため(他のNICは送信します)、すべてのUDPパッケージがデフォルトの1500MTUはIPパッケージに分割されています。 IPパッケージにはポートがなく、UDP-RSS-ハッシュアルゴリズムは機能しません。 IPパッケージがUDPパッケージの一部であることを知っている場合でも。
唯一の方法は、iperfの送信側のMTUサイズを物理MTUに縮小することです。
また、デフォルトのWINSOCK APIを使用している場合、Windowsはカーネルから複数のUDPパッケージを受け取りません。 その結果、CPU負荷が非常に高くなります。 この問題を解決するには、WSA登録済みI / OAPIを使用する必要があります。
_元々は@Febbeによってhttps://github.com/esnet/iperf/issues/1049#issuecomment-766829448_に投稿されました
この問題の原因を突き止めていただければ幸いです。 残念ながら、ESnetはWindowsでiperf3をサポートしていないため、解決策がある場合は、コミュニティから提供される必要があります(また、サポートされているプラットフォームでiperf3を壊さないでください)。
「ESnetはWindowsでiperf3をサポートしていません」とは、ESnetとしてのあなたはそれを修正しないが、コミュニティからのPRを受け入れることを意味しますか?
私が知っているように、RSSキューはLinuxプラットフォームでも利用されているので、デフォルトの-l 8Kフラグを使用する代わりに、少なくともudpのパッケージフラグメンテーションを禁止するフラグを追加することは理にかなっています。
「ESnetはWindowsでiperf3をサポートしていません」とは、ESnetとしてのあなたはそれを修正しないが、コミュニティからのPRを受け入れることを意味しますか?
機能を損なうことがない場合(可能であれば条件付きコンパイルを使用し、ツリー内にいくつかの例があります)、またはiperf3デザインのデザインに大きな変更を引き起こさない場合は、コミュニティからPRを取得します。 私たちの環境では、Windowsに固有のPRを実際にテストすることはできません。そのため、PRが受け入れられる可能性が最も高いのは、それが小さく、Windows以外の開発者が理解しやすい場合です。
フラグメント化しないフラグを設定するためのオプションを追加するためにPR#1119を提出しました。
最も参考になるコメント
フラグメント化しないフラグを設定するためのオプションを追加するためにPR#1119を提出しました。