Performance and Tuning

      

Operating System Tuning

Tune your operating system according to your operating system documentation. For Windows platforms, the default settings are usually sufficient. However, the Solaris and Linux platforms usually need to be tuned appropriately. The following sections describe issues related to operating system performance:

 


Basic OS Tuning Concepts

Proper OS tuning improves system performance by preventing the occurrence of error conditions. Operating system error conditions always degrade performance. Typically most error conditions are TCP tuning parameter related and are caused by the operating system's failure to release old sockets from a close_wait call. Common errors are “connection refused”, “too many open files” on the server-side, and “address in use: connect” on the client-side.

In most cases, these errors can be prevented by adjusting the TCP wait_time value and the TCP queue size. Although users often find the need to make adjustments when using tunnelling, OS tuning may be necessary for any protocol under sufficiently heavy loads. The following sections provide information on tuning parameters for various operating systems.

Although the following sections provide information on tuning parameters that Oracle has determined can enhance application performance, Oracle recommends following your OS vendor's tuning documentation for tuning parameter values and monitoring performance changes when changing tuning parameters in your local environment.

Note: Another resource which may provide helpful tuning information is the All SPEC jAppServer2004 Results Published by SPEC web page. It provides the OS tuning parameters used for each reported WebLogic Server benchmark.

 


Solaris Tuning Parameters

The following sections provide information on tuning Solaris operating systems:

The following sections list common parameters that can enhance performance. These lists are not all inclusive and parameters may be different, have different defaults, or be out of date for different Solaris operating systems. For more information, see Additional Solaris Tuning Information.

 

Setting TCP Parameters With the ndd Command

This section lists important TCP tuning parameters that when tuned, can enhance application performance:

Tip: Use the netstat -s -P tcp command to view all available TCP parameters.

Set TCP-related tuning parameters using the ndd command, as demonstrated in the following example:

Note: ndd -set /dev/tcp tcp_conn_req_max_q 16384

 

Setting Parameters In the /etc/system File

This section lists important /etc/system file tuning parameters that when tuned, can enhance application performance. Each socket connection to the server consumes a file descriptor. To optimize socket performance, you may need to configure your operating system to have the appropriate number of file descriptors. Therefore, you should change the default file descriptor limits, as well as the hash table size and other tuning parameters in the /etc/system file.

You must reboot your machine anytime you modify /etc/system parameters.

 

CE Gigabit Network Card Settings

This section lists important CE Gigabit Network Card tuning parameters that when tuned, can enhance application performance:

 

Additional Solaris Tuning Information

For more information about Solaris tuning options, see:

 


Linux Tuning Parameters

This section lists important Linux tuning parameters that when adjusted, can enhance application performance:

For more information about Linux tuning, you should consult your Linux vendor's documentation. Also, the Ipsysctl Tutorial 1.0.4 describes all of the IP options provided by Linux.

 


HP-UX Tuning Parameters

This section lists important HP-UX operating system tuning parameters that when adjusted, can enhance application performance:

For more HP-UX tuning information, see the Tunable Kernel Parameters reference documentation.

 


Windows Tuning Parameters

For Windows platforms, the default settings are usually sufficient. However, under sufficiently heavy loads it may be necessary to adjust the MaxUserPort and TcpTimedWaitDelay. These parameters determine the availability of user ports requested by an application.

By default, ephemeral (that is, short-lived) ports are allocated between the values of 1024 and 5000 inclusive using the MaxUserPort parameter. The TcpTimedWaitDelay parameter, which controls the amount of time the OS waits to reclaim a port after an application closes a TCP connection, has a default value of 4 minutes. During a heavy loads, these limits may be exceeded resulting in an address in use: connect exception. If you experience address in use: connect exceptions try setting the MaxUserPort and TcpTimedWaitDelay registry values under the HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters key:

   MaxUserPort = dword:00004e20 (20,000 decimal)

TcpTimedWaitDelay = dword:0000001e (30 decimal)

Increase the value of the MaxUserPort parameter if the exception persists.

For more information about Windows 2000 tuning options, see:

 


Other Operating System Tuning Information

For more information about Windows, HP-UX, and AIX tuning options, refer to the following Web sites: