FreeBSD
???不明???
ab -n 100000 -c 300 http://localhost/ とかでベンチマークを取ってみたところ、「MaxClients 16」と「MaxClients 256」で、あまり大きな差はない。TIME_WAIT 辺りが律速になっているのかな? この間 TIME_WAIT の数は 1206 でほぼ変わらず。
sysctl -a vm.zone にある tcptw の FREE が 0 になる。こいつは何物?(まぁ、TCP_TIMEWAIT の数でしょう)
kernel の options MAXFILES=xxxxx を増やす(maxuser を増やすとこれも勝手に増える)と同時に open できる socket の数が増えるのでちょっとだけ何とかなるかも。
sys/netinet/tcp_input.c を眺めたところ TIME_WAIT = 2MSL らしいので「sysctl の net.inet.tcp.msl」の値をいじることで変更が可能と思われる。
Apache の設定を「MinSpare,MaxSpare,StartServers,MaxClients 32 / KeepAlive Off」で「ab -n 100000 -c 100 http://localhost/」
sysctl net.inet.tcp.msl=30000 (デフォルト)とした場合
Request per second: 502.12 [#/sec] (mean)
Connection times Total:
min 82 max 1830 mean 197 sd 82.0 median 166
sysctl net.inet.tcp.msl=5000 とした場合
Request per second: 493.37 [#/sec] (mean)
Connection times Total(ms):
min 40 max 5692 mean 201 sd 193.1 median 162
max が伸びてしまいましたねぇ。min,max もですが、σ,2σ,3σの範囲も見たいです。
今は I/O が激しいので後で再テストした方がいいですね。
Linux
「/proc/sys/net/ipv4/tcp_fin_timeout」へTIME_WAIT値を設定
Solaris (ms単位: 1分)
ndd -set /dev/tcp tcp_time_wait_interval 60000
相手が応答しない場合、ESTBLISHEDになっていられる時間の設定。(default:120分)
ndd -set /dev/tcp tcp_keepalive_interval 120000
nsug FAQ
???不明???
ab -n 100000 -c 300 http://localhost/ とかでベンチマークを取ってみたところ、「MaxClients 16」と「MaxClients 256」で、あまり大きな差はない。TIME_WAIT 辺りが律速になっているのかな? この間 TIME_WAIT の数は 1206 でほぼ変わらず。
sysctl -a vm.zone にある tcptw の FREE が 0 になる。こいつは何物?(まぁ、TCP_TIMEWAIT の数でしょう)
kernel の options MAXFILES=xxxxx を増やす(maxuser を増やすとこれも勝手に増える)と同時に open できる socket の数が増えるのでちょっとだけ何とかなるかも。
sys/netinet/tcp_input.c を眺めたところ TIME_WAIT = 2MSL らしいので「sysctl の net.inet.tcp.msl」の値をいじることで変更が可能と思われる。
Apache の設定を「MinSpare,MaxSpare,StartServers,MaxClients 32 / KeepAlive Off」で「ab -n 100000 -c 100 http://localhost/」
sysctl net.inet.tcp.msl=30000 (デフォルト)とした場合
Request per second: 502.12 [#/sec] (mean)
Connection times Total:
min 82 max 1830 mean 197 sd 82.0 median 166
sysctl net.inet.tcp.msl=5000 とした場合
Request per second: 493.37 [#/sec] (mean)
Connection times Total(ms):
min 40 max 5692 mean 201 sd 193.1 median 162
max が伸びてしまいましたねぇ。min,max もですが、σ,2σ,3σの範囲も見たいです。
今は I/O が激しいので後で再テストした方がいいですね。
Linux
「/proc/sys/net/ipv4/tcp_fin_timeout」へTIME_WAIT値を設定
Solaris (ms単位: 1分)
ndd -set /dev/tcp tcp_time_wait_interval 60000
相手が応答しない場合、ESTBLISHEDになっていられる時間の設定。(default:120分)
ndd -set /dev/tcp tcp_keepalive_interval 120000
nsug FAQ