- - PR -
ソケットのバッファの最適化
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-10-19 11:22
ソケットのバッファの最適化について
MTUやTcpWindowの最適化の話は良く聞きますが、ソケット(ポート)毎に確保 される入出力バッファのサイズについては、あまり聞きません。そこで、ちょっ とした実験をしてみました。 ・実験方法 OSとしてLinuxを使用し、ttcpを用いて通信速度を計測する。Windowサイズは 64KBに固定し、net.core.optmem_maxの値を変更することにより、入出力バッ ファのサイズを変更する。 ・実験環境 以下のマシンを2台で1000Base-SXでクロス接続した。 CPU:PentiumIII 1.26GHz*2のSMP MEM:256MB OS: Red Hat Linux 7.2(kernel-smp-2.4.18-17.7.x) ・結果 net.core.optmem_max=10240(デフォルト): 80.1MBytes/sec net.core.optmem_max=65536 :110.1MBytes/sec かなり違いがあるものですね。メモリリソースに余裕がある環境であれば、それ なりに効果があります。 利点があれば欠点もありそうです。転送効率が良くなったために結果として、CPU 使用率が上がります。WEBブラウザで同時接続数を過剰に増やしていると、転送速度 が遅い場合に、タイムアウトになりやすくなります。 Windowsの場合には、次のキーでバッファのサイズを指定しているようです。 (レジストリの値はチューニング途中の値です。デフォルトでも最適値でもありませ ん。) Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\AFD\Parameters] "DefaultReceiveWindow"=dword:00010000 "DefaultSendWindow"=dword:00010000 "LargeBufferSize"=dword:00004000 "MediumBufferSize"=dword:00001000 "SmallBufferSize"=dword:00000400 参考文献:http://www.microsoft.com/japan/windows2000/techinfo/howitworks/communications/networkbasics/tcpip_implement.asp ダイアルアップの時の最適値や、xDSLのの時の最適値はどのぐらいになるので しょうね。究めてみるのも面白いかもしれません。 |
1