Windows 7 TCPスタックをLAN環境での速度を調整したい。
背景情報:Windows 2008R2、Windows 7、およびCitrixカーネルを備えたDebian LennyでCitrix XenServerをセットアップしました。Windowsマシンにiperf
サーバープロセスがインストールされており、別のホストでDebian Lennyも実行されています。それ以外の場合、サーバーはアイドル状態であり、テストを数回繰り返して結果を確認しました。
iperf
を使用したテストでは、2008R2はチューニングなしで約600〜700Mbpsを達成できますが、Windows 7がTCPウィンドウサイズを-w
パラメータを使用してiperf
に設定します。
netsh
autotuining
からdisabled
、experimental
、normal
およびhighlyrestricted
を使用してみました-変更なし。 congestionprovider
を変更しても、rss
やchimney
と同様に何も起こりません。
利用可能なすべての設定をWindows 2008R2ホストと同じ値に設定しても、効果はありません。
要約する:
iperf -w 65536
:400〜500 Mbpsパフォーマンスの400Mbpsがないため、XenServerホストのくだらないRealtek NICのせいです(ラップトップからiperfサーバーに最大980Mbpsを送信できます)が、Windows 7が良好なパフォーマンスを達成できない理由を説明していませんアプリケーションレベルでウィンドウサイズを手動で調整する必要はありません。
それでは、Windows 7をチューニングする方法は?
Windows 2008R2とWindows 7では異なるネットワークドライバーである可能性があります。また、xenserverは常にWindows 2008R2とWindows 7に同じ仮想NICを提供しますか?なぜなら、それが異なると、別のドライバーがロードされるからです。
いくつかのパフォーマンスの違いがあるかもしれません。
編集:私はちょうどWindows 7がデフォルトで非常に小さい送信/受信バッファを持っていることを思い出しました。私が開発していた一部のアプリでは、Windows 7では8kBのような哀れなものでした。 ubuntu linuxでは、約120kBです。制限が64kBであることをどこかで読むかもしれません。これは、それ以降のバージョンのウィンドウでは実際には正しくありません。私はそれが1MB以上にも設定できることを発見しました。ただし、このサイズが大きいと、パフォーマンスの向上はほとんど見られません。
このリンクは、システム全体に適用されるレジストリ内のいくつかのtcp調整パラメーターを提供します。これらのオプションの多くは、アプリケーション自体によって上書きされる可能性があることに注意してください。
http://www.psc.edu/networking/projects/tcptune/http://www.psc.edu/networking/projects/tcptune/OStune/winxp/winxp_stepbystep.html
ウィンドウサイズを大きくして、バッファを送受信してみてください。リンクのこれらのレジストリ設定がWindows 7にも適用されることを願っています。
[〜#〜] rss [〜#〜] および TCPオフロードエンジン を有効にしてみてください。
netsg int tcp set global rss=enabled
netsh int tcp set global chimney=enabled
TCPオートチューニング(すでに除外されています)、すでに対処済みのMTU、およびMMCS(マルチメディアクラススケジューリング)は通常、大きな違いです。 MMCSはまだ対処されていないので、MMCSを無効にしてみてください。
LAN速度またはそれに近い速度の場合は、tcpウィンドウの自動スケーリングが無効になっていることを確認してください。
手順はここにあります: http://smallvoid.com/article/winnt-services-mmcss.html
Windows内のRealtekドライバーがCitrix XenServer上の仮想マシンとして表示されないはずです。その場合、XenToolsがインストールされていないことになります。 Realtek NICご覧のとおり、Dom 0(ドメイン0)内のQEMUサービスによって提供されるエミュレートされたものです。WindowsOSのインストール後、特にアプリケーションのインストールを行う前に、次のことが必要です。また、XenToolsのインストール後に速度がハードコードされます(VMユーザーガイド)に記載されています)。これは、仮想デバイスの速度に制限がないためです。