40
Intelligent NIC Getting Started Guide — NDA Required
NetXen, Inc.
Appendix B. Performance Tools and Optimization
Server Side:
iperf -s -w256k -l 56k
Client Side:
iperf -c <ipAddr of Server> -w256k -P8 -l 56k
B.3.2
TTCP
For each thread, add an entry in the server and client side scripts.
Receive Side (Server):
% ttcp -r -s -l 65536 -fg -n 40000 -p 5001 &
% ttcp -r -s -l 65536 -fg -n 40000 -p 5002 &
…
Transmit Side (Client):
% ttcp -t -s -l 65536 -n 40000 -D -fg -p 5001 192.168.20.50 &
% ttcp -t -s -l 65536 -n 40000 -D -fg -p 5002 192.168.20.50 &
…
B.4
Linux Optimization
While optimization of the Linux operating system is a topic beyond the scope of this
guide, below are several of the more commonly modified network-specific Linux tunable
parameters.
These tunable parameters make the time default values for TCP/IP connection lower so
that more connections can be handled by time on the TCP/IP protocol. The following
parameters help to:
Decrease the amount of time the Linux OS requires to close a connection.
Reduce the amount of time required for a stale connection to be terminated.
Turn off some IP extensions that are not needed.
The default setup for the TCP/IP parameters under Red Hat Linux are modified as
follows:
Edit the /etc/sysctl.conf file, or use the sysctl command to set the values for these
variables:
net.ipv4.tcp_timestamps
- To turn of TCP timestamping (avoid the 12 byte Timestamp
overhead).
net.ipv4.tcp_sack
- To turn off TCP source acknowledge.
The
tcp_rmem
and
tcp_wmem
contain arrays of three parameter values. The three
numbers represent minimum, default and maximum memory values. These three values
are used to bound auto-tuning and balance memory usage while under global memory
stress.
The tunable parameters for the TCP receive buffers are: