Sun GlassFish Enterprise Server v2.1.1 Performance Tuning Guide

Tuning Parameters

Tuning Solaris TCP/IP settings benefits programs that open and close many sockets. Since the Enterprise Server operates with a small fixed set of connections, the performance gain might not be significant.

The following table shows Solaris tuning parameters that affect performance and scalability benchmarking. These values are examples of how to tune your system for best performance.

Table 5–1 Tuning Parameters for Solaris

Parameter  

Scope  

Default  

Tuned Value  

Comments  

rlim_fd_max

/etc/system

65536 

65536 

Limit of process open file descriptors. Set to account for expected load (for associated sockets, files, and pipes if any). 

rlim_fd_cur

/etc/system

1024 

8192 

 

sq_max_size

/etc/system

Controls streams driver queue size; setting to 0 makes it infinite so the performance runs won’t be hit by lack of buffer space. Set on clients too. Note that setting sq_max_size to 0 might not be optimal for production systems with high network traffic.

tcp_close_wait_interval

ndd /dev/tcp

240000 

60000 

Set on clients too. 

tcp_time_wait_interval

ndd /dev/tcp

240000 

60000 

Set on clients too.  

tcp_conn_req_max_q

ndd /dev/tcp

128 

1024 

 

tcp_conn_req_max_q0

ndd /dev/tcp

1024 

4096 

 

tcp_ip_abort_interval

ndd /dev/tcp

480000 

60000 

 

tcp_keepalive_interval

ndd /dev/tcp

7200000 

900000 

For high traffic web sites, lower this value. 

tcp_rexmit_interval_initial

ndd /dev/tcp

3000 

3000 

If retransmission is greater than 30-40%, you should increase this value. 

tcp_rexmit_interval_max

ndd /dev/tcp

240000 

10000 

 

tcp_rexmit_interval_min

ndd /dev/tcp

200 

3000 

 

tcp_smallest_anon_port

ndd /dev/tcp

32768 

1024 

Set on clients too. 

tcp_slow_start_initial

ndd /dev/tcp

Slightly faster transmission of small amounts of data. 

tcp_xmit_hiwat

ndd /dev/tcp

8129 

32768 

Size of transmit buffer. 

tcp_recv_hiwat

ndd /dev/tcp

8129 

32768 

Size of receive buffer. 

tcp_conn_hash_size

ndd /dev/tcp

512 

8192 

Size of connection hash table. See Sizing the Connection Hash Table.

Sizing the Connection Hash Table

The connection hash table keeps all the information for active TCP connections. Use the following command to get the size of the connection hash table:

ndd -get /dev/tcp tcp_conn_hash

This value does not limit the number of connections, but it can cause connection hashing to take longer. The default size is 512.

To make lookups more efficient, set the value to half of the number of concurrent TCP connections that are expected on the server. You can set this value only in /etc/system, and it becomes effective at boot time.

Use the following command to get the current number of TCP connections.

netstat -nP tcp|wc -l