- PR -

ソケットのバッファの最適化

1
投稿者投稿内容
MyTime
ベテラン
会議室デビュー日: 2002/01/03
投稿数: 83
投稿日時: 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

スキルアップ/キャリアアップ(JOB@IT)