#!/sbin/sh # # Tuning Script for TCP Applications # Version 1.1 # By Colin Bitterfield # Excerpts from various sources # To Install this script # Copy file to /etc/init.d # chown root:sys tcp-performance (Or whatever you named the script) # chmod 755 tcp-performance # ln -s /etc/init.d/tcp-performance /etc/rc3.d/S79tcp.performance # # VERSION="1.1" ###################################################################### case "$1" in start) echo "TCP Performance script ${VERSION}" /usr/sbin/ndd -set /dev/tcp tcp_deferred_ack_interval 1 /usr/sbin/ndd -set /dev/tcp ip_ignore_redirect 1 /usr/sbin/ndd -set /dev/tcp tcp_conn_grace_period 500 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 8096 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 8096 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_min 1 /usr/sbin/ndd -set /dev/tcp tcp_cwnd_max 65534 /usr/sbin/ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 16000 /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_cinterval 60000 /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 60000 /usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 90000 /usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 32768 /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_initial 3000 /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_max 10000 /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_min 3000 /usr/sbin/ndd -set /dev/tcp tcp_slow_start_initial 2 /usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 60000 /usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 32768 echo "NOTICE: Check the following parameters value in /etc/system" echo " * set tcp:tcp_conn_hash_size=8192" echo " * set rlim_fd_max=4096" echo " * set rlim_fd_cur=2000" cmdtext="setting" ;; default) /usr/sbin/ndd -set /dev/tcp ip_ignore_redirect 0 /usr/sbin/ndd -set /dev/tcp tcp_conn_grace_period 0 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q 128 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_max_q0 1024 /usr/sbin/ndd -set /dev/tcp tcp_conn_req_min 1 /usr/sbin/ndd -set /dev/tcp tcp_cwnd_max 1048576 /usr/sbin/ndd -set /dev/tcp tcp_fin_wait_2_flush_interval 675000 /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_cinterval 180000 /usr/sbin/ndd -set /dev/tcp tcp_ip_abort_interval 480000 /usr/sbin/ndd -set /dev/tcp tcp_keepalive_interval 7200000 /usr/sbin/ndd -set /dev/tcp tcp_recv_hiwat 24576 /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_initial 3000 /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_max 60000 /usr/sbin/ndd -set /dev/tcp tcp_rexmit_interval_min 400 /usr/sbin/ndd -set /dev/tcp tcp_slow_start_initial 4 /usr/sbin/ndd -set /dev/tcp tcp_time_wait_interval 240000 /usr/sbin/ndd -set /dev/tcp tcp_xmit_hiwat 16384 cmdtext="resetting (kernel default)" ;; show) echo "ip_ignore_redirect `/usr/sbin/ndd /dev/tcp ip_ignore_redirect`" echo "tcp_conn_grace_period `/usr/sbin/ndd /dev/tcp tcp_conn_grace_period`" echo "tcp_conn_req_max_q `/usr/sbin/ndd /dev/tcp tcp_conn_req_max_q`" echo "tcp_conn_req_max_q0 `/usr/sbin/ndd /dev/tcp tcp_conn_req_max_q0`" echo "tcp_conn_req_min `/usr/sbin/ndd /dev/tcp tcp_conn_req_min`" echo "tcp_cwnd_max `/usr/sbin/ndd /dev/tcp tcp_cwnd_max`" echo "tcp_fin_wait_2_flush_interval `/usr/sbin/ndd /dev/tcp tcp_fin_wait_2_flush_interval`" echo "tcp_ip_abort_cinterval `/usr/sbin/ndd /dev/tcp tcp_ip_abort_cinterval`" echo "tcp_ip_abort_interval `/usr/sbin/ndd /dev/tcp tcp_ip_abort_interval`" echo "tcp_keepalive_interval `/usr/sbin/ndd /dev/tcp tcp_keepalive_interval`" echo "tcp_recv_hiwat `/usr/sbin/ndd /dev/tcp tcp_recv_hiwat`" echo "tcp_rexmit_interval_initial `/usr/sbin/ndd /dev/tcp tcp_rexmit_interval_initial`" echo "tcp_rexmit_interval_max `/usr/sbin/ndd /dev/tcp tcp_rexmit_interval_max`" echo "tcp_rexmit_interval_min `/usr/sbin/ndd /dev/tcp tcp_rexmit_interval_min`" echo "tcp_slow_start_initial `/usr/sbin/ndd /dev/tcp tcp_slow_start_initial`" echo "tcp_time_wait_interval `/usr/sbin/ndd /dev/tcp tcp_time_wait_interval`" echo "tcp_xmit_hiwat `/usr/sbin/ndd /dev/tcp tcp_xmit_hiwat`" cmdtext="status" ;; stop) cmdtext="stopping" ;; *) echo "Usage: $0 {start|stop|show|default}" exit 1 ;; esac exit 0