ablog

不器用で落着きのない技術者のメモ

Solaris のネットワーク周りのチューニングメモ

  • ネットワークの統計情報を確認する
# netstat -sP tcp
        tcpListenDrop       =  3065     tcpListenDropQ0     =     0
        tcpHalfOpenDrop     =     0     tcpOutSackRetrans   =    99

tcpListenDrop、tcpListenDropQ0、tcpHalfOpenDrop、tcpOutSackRetrans が 0 なら問題なし。

  • パラメータ設定スクリプトを作成する(以下の値はてけとー)
# vi /etc/init.d/network-tuning 
#!/user/bin/sh
/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 5000              # for tcpListenDrop
/usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 10000            # for tcpListenDropQ0
/usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 60000
/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_initial 20000
/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_min 20000
/usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_max 600000
/usr/sbin/ndd -set /dev/tcp tcp_max_buf 1073741824
# ln -s /etc/init.d/network-tuning /etc/rc2.d/S99network-tuning
  • sq_max_size を無制限に設定する(この値もてけとー)
# vi /etc/system
set sq_max_size=0
  • OSを再起動する
# init 6
  • 確認する
# /usr/sbin/ndd /dev/tcp tcp_conn_req_max_q
5000
# /usr/sbin/ndd /dev/tcp tcp_conn_req_max_q0
10000
# /usr/sbin/ndd /dev/tcp tcp_time_wait_interval
60000
# /usr/sbin/ndd /dev/tcp tcp_rexmit_interval_min
20000
# /usr/sbin/ndd /dev/tcp tcp_rexmit_interval_initial
20000
# /usr/sbin/ndd /dev/tcp tcp_rexmit_interval_max
600000
# /usr/sbin/ndd /dev/tcp tcp_max_buf
1073741824


[参考]
http://www.sean.de/Solaris/soltune.html
http://docs.sun.com/app/docs/doc/819-2582/addgn?a=view
http://www.nognog.com/techmemo/Solaris_10_Setup_HOWTO.php
http://blogs.sun.com/yappri/entry/network_analysis
http://docs.sun.com/source/819-1206/B-analysis.html
http://homepage3.nifty.com/owl_h0h0/unix/job/UNIX/network/tcp_tune_sun.html
http://homepage3.nifty.com/owl_h0h0/unix/job/UNIX/network/netstat_solaris.html
Optimize Solaris’s TCP stack | Letsgetdugg