perf_tune.html

From: Olaf Menzel ([email protected])
Date: Wed Jul 15 1998 - 06:58:41 EDT


Notes based on http://www.psc.edu/networking/perf_tune.html
------------------------------

1. Windows 98
-----------

To install the mentioned keys in the registry in not enough!
You have to install 1 additional key:

        DefaultRcvWindow

HKLM\system\currentcontrolset\services\VXD\MSTCP

DefaultRcvWindow is a string type and the value describes the default
receive windowsize for the TCP stack. Otherwise the windowsize has to be
programmed in apps with setsockopt.

2. Linux Kernel > 2.1.100
-----------------

A lot of enhancements for TCP are avaiable in the new kernels > 2.1.00 and
I hope the stable release 2.2.x will come soon.

With the help of Alan Cox <[email protected]> I could tune the TCP
stack for using it in satellite enviroment.

2.1. tuning with the sysctl interface
-------------------------

There is no sysctl apllication for changing values, but you can change the
values very easy with a editor like vi.

- tuning the default and maximum window size:

/proc/sys/net/core/rmem_default - default receice window
/proc/sys/net/core/rmem_max - maximum receive window
/proc/sys/net/core/wmem_default - default send window
/proc/sys/net/core/wmem_max - maximum send window

In /proc/sys/net/ipv4/ you will find some other possibilities to tune TCP:

        tcp_timestamps
        tcp_windowscaling
        tcp_sack
        ...

You will find a short description in
<LINUX-SOURCE_DIR>/Documentation/networking/ip-sysctl.txt
            

2.2 tuning at compile time
------------------

All the above values are set default by a header file in the directory:

/<LINUX-SOURCE-DIR>/include/linux/

        skbuff.h

 /* These are just the default values. This is run time configurable.
 * FIXME: Probably the config option should go away. -- erics
 */
#ifdef CONFIG_SKB_LARGE
#define SK_WMEM_MAX 65535
#define SK_RMEM_MAX 65535
#else
#define SK_WMEM_MAX 32767
#define SK_RMEM_MAX 32767
#endif/*

in <LINUX-SOURCE-DIR>/include/net

        tcp.h

you can change the MAX-WINDOW value

 * Never offer a window over 32767 without using window scaling. Some
 * poor stacks do signed 16bit maths!
 */
#define MAX_WINDOW 32767
#define MIN_WINDOW 2048

With the tuned TCP stacks it was possible to get a maximum throughput
between 1.5 - 1.8 Mbit/s via a 2Mbit/s satellite link, measured wih netperf.

with regards

Olaf Menzel

----
(:-) Olaf Menzel <[email protected]> (:-) http://www.gmd.de    (:-) 
(:-) German National Research Centre of Information Technology (:-)
(:-) Schloss Birlinghoven, 53754 Sankt Augustin, Germany         (:-)
(:-)  Tel.: +49 2241 14 2334          Fax: +49 2241 14 1050          (:-)



This archive was generated by hypermail 2b29 : Mon Feb 14 2000 - 16:14:45 EST