Greetings. Some of the guys in this department are encountering network
bottlenecks (yes, I know, everybody is). This is on systems running
various versions of Digital Unix 4.0. We've been advised that the default
TCP settings are typically not tuned for speed, and we've been advised to
change those settings.
I have a couple of questions about this. First, what is the rationale for
the default settings? I.e., if it's easy to increase performance just by
changing the values of a few kernel parameters, why don't all the vendors
simply change to the better values?
Second, I wonder if somebody can tell me, or point me to a reference which
tells me, how to accomplish this TCP tuning in Digital Unix. I've appended
commands which we've been given to do similar things in Solaris and Linux.
Thanks.
- Mike
Example 1: setting TCP parameters in Solaris 2
>ndd -set /dev/tcp tcp_wscale_always 1
>ndd -set /dev/tcp tcp_tstamp_always 1
>ndd -set /dev/tcp tcp_max_buf 655360
>ndd -set /dev/tcp tcp_xmit_hiwat 655360
>ndd -set /dev/tcp tcp_recv_hiwat 655360
Example 2: A similar example for Solaris 2
#!/bin/sh
# increase max tcp window
# Rule-of-thumb: max_buf = 2 x cwnd_max (congestion window)
ndd -set /dev/tcp tcp_max_buf 4194304
ndd -set /dev/tcp tcp_cwnd_max 2097152
# increase DEFAULT tcp window size
ndd -set /dev/tcp tcp_xmit_hiwat 65536
ndd -set /dev/tcp tcp_recv_hiwat 65536
osver=`uname -r`
if [ $osver = "5.7" ]; then
echo "setting tcp_sack_permitted to 2"
ndd -set /dev/tcp tcp_sack_permitted 2
fi
Example 3: Doing a similar thing in Linux
add the following to /etc/rc.d/rc.local
echo 8388608 > /proc/sys/net/core/wmem_max
echo 8388608 > /proc/sys/net/core/rmem_max
echo 65536 > /proc/sys/net/core/rmem_default
echo 65536 > /proc/sys/net/core/wmem_default
----------
Michael Hannon hannon_at_physics.ucdavis.edu (Internet)
Dept. of Physics
University of California ucdhep::mike (42385::mike) (HEPnet)
Davis, CA 95616-8677 530.752.4966 (Voice) 530.752.4717 (FAX)
Received on Thu Dec 02 1999 - 21:02:51 NZDT