Interpreting SAR Data
Tuning A Netra Webserver

Tuning A Netra Webserver

Most of these changes are in the /etc/rc2.d/S99tuning script (ndd this and that). There is also one change in /etc/system.


1. ip_strict_dst_multihoming
default = 0
currently = 1

This change is less about performance and more about security. ip_strict_dst_multihoming will prevent the kernel from forwarding packets from one interface to another. In other words, strict multihoming requires a host not to accept datagrams on physical interfaces to which the logical one is not bound. Outgoing datagrams are restricted to the interface which corresponds with the source ip address.

2. tcp_time_wait_interval
default = 4 minutes
set to = 60 seconds

This parameter tells TCP how long to keep closed connection control blocks. Once iPlanet completes a TCP connection, the control blocks will be kept for the requested wait_interval. When high connection rates occur, a large backlog of TCP connections build up and can slow the server down.

3. tcp_conn_req_max_q
default = 128
set to = 1024
This setting defines the size of the tcp connection request queue. This means that the server can have up to 1024 connections in this queue. These connections have completed the three way handshake of a TCP open (SYN ACK SYN), and the connections in this queue are in the state "ESTABLISHED", but have not been accepted by iPlanet yet.

4. tcp_conn_req_max_q0
default = 1024
set to = 2048

This setting is related to the previous. The difference in this queue is that here, the connections do not have to be complete. Connections in this queue are in the "SYN_RCVD" state. A nifty side effect to increasing this value for performance tuning, is that it will also help protect against a SYN flooding attack.

5. tcp_conn_req_min
default = 1
set to = 512

Pretty self explanatory. This is the default minimum value of the maximum number of pending TCP connection requests for a listener waiting to be accepted. This is the lowest maximum value of listen(3SOCKET) an application can use.

6. tcp_conn_hash_size
default = 512
set to = 1024

The tcp connection hash size determines the size of the table where Solaris keeps all interesting information like RTO, MSS, windows and states on any TCP connection. According to one guy on the net, Sun increases this to 262144 in order to benchmark webservers.