Oracle Audio Technologies A86828-01 User Manual

Page 45

Advertising
background image

TCP Tuning

Optimizing HTTP Server Performance

4-5

You will find some other possibilities to tune TCP in

/proc/sys/net/ipv4/

:

tcp_timestamps

tcp_windowscaling

tcp_sack

There is a brief description of TCP parameters in

/Documentation/networking/ip-sysctl.txt.

Tuning at Compile Time

All the above TCP parameter values are set default by a header file in the Linux
kernel source directory

/LINUX-SOURCE-DIR/include/linux/skbuff.h

These values are default. This is run time configurable.

# 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

You can change the MAX-WINDOW value in the Linux kernel source directory

/LINUX-SOURCE-DIR/include/net/tcp.h.

#define MAX_WINDOW 32767

#define MIN_WINDOW 2048

The

MIN_WINDOW

definition limits you to using only 15bits of the window field in

the TCP packet header.

For example, if you use a 40kB window, set the

rmem_default

to 40kB. The stack

will recognize that the value is less than 64 kB, and will not negotiate a winshift. But
due to the second check, you will get only 32 kB. So, you need to set the

rmem_default

value at greater than 64 kB to force a winshift=1. This lets you

express the required 40 kB in only 15 bits.

Note:

Never assign values greater than 32767 to windows,

without using window scaling.

Advertising