IBM Support

Performance Tip: Understanding Operating System Tuning Parameters

Technical Blog Post


Abstract

Performance Tip: Understanding Operating System Tuning Parameters

Body

When opening a PMR with IBM support for a performance issue with IBM Tivoli service management products, there is specific hardware and operating system information that can assist the performance team in diagnosing potential issues that you may be asked to provide. Here is a quick overview of that information the performance team uses to assist in problem determination and the values that are recommended when applicable to a particular environment.

 

Server Configuration

Different operating systems can be tuned differently, so it's helpful to know whether the servers are running AIX, Windows, Linux, etc. Knowing if the OS is 64-bit determines whether or not the JVM heap size can be larger than what's available on 32-bit operating systems. And, since some folks prefer to run the 32-bit version of WAS even if the OS is 64-bit., it’s helpful to understand that information too. Knowing the CPU, memory, and disk info can indicate whether or not the hardware has the capability to handle the expected system load. Lastly, there are special considerations that must be taken into account when the environment is virtualized.

Information specific to AIX

If you are running IBM Tivoli service management products on the AIX operating system, you may be asked to provide the following information:

Network tuning parameters

In general, you should set the network parameters to the highest values permitted by your network (or the standards set by your networking team). You can obtain the current network parameters by executing the no –p –a command. For example, on a Gigabit LAN, the recommended settings are:

·         sb_max=6192000

·         tcp_sendspace=4096000

·         tcp_recvspace=4096000

·         udp_sendspace=65536

·         udp_recvspace=655360

·         rfc1323=1

·         ipqmaxlen=250

·         clean_partial_conns=1

·         tcp_keepidle=600

·         tcp_keepintvl=10

·         tcp_keepinit=40

·         tcp_timewait=1

·         tcp_finwait2=60

·         tcp_ephemeral_low=1024

However, make sure you check with your networking team before changing these parameters since they may not work for your particular environment, or your networking team may have specific standards that you must adhere to.

Resource (ulimit) settings

You may also be asked to supply the output from the ulimit –a command. Similar to the networking parameters, it is recommended to set these to the highest values permitted by your server management team’s standards. Ideally, the recommended values are:

·         time(seconds) unlimited

·         file(blocks) unlimited

·         data(kbytes) unlimited

·         stack(kbytes) 4194304

·         memory(kbytes) unlimited

·         coredump(blocks) unlimited

·         nofiles(descriptors) unlimited

·         threads(per process) unlimited

·         processes(per user) unlimited

Again, make sure you check with your server team before changing these settings.

Process settings

You may also be asked to provide the output from the lsattr -l sys0 –E command. In particular, the Maximum User Processes (maxuproc) parameter is recommended to be set to a value of 4096.

Virtual memory settings

Lastly, you may be asked to provide virtual memory settings which can be obtained by executing the vmo –p –a command. For optimum performance, the recommended VMM settings are:

·         lru_file_repage=0

·         maxclient%=90

·         maxperm%=90

·         minperm%=5

 

Information specific to Redhat Linux

In a Redhat Linux environment, you may be asked to provide the output from the sysctl –a command to obtain the kernel parameters. In particular, it is recommended to ensure that the available TCP/IP port range (net.ipv4.ip_local_port_range) is set to 102465535.

Information specific to Windows

In a Windows environment, you may be asked to check key values in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. The recommended values are:

·         TcpTimedWaitDelay          dword:0000001e (30)

·         StrictTimeWaitSeqCheck     dword:00000001 (1)

·         MaxFreeTcbs                dword:00011940 (72000)

·         MaxHashTableSize           dword:0000ffff (65535)

·         TcpWindowSize              dword:0000ffff (65535)

·         EnableDynamicBacklog       dword:00000001 (1)

·         MinimumDynamicBacklog      dword:00000032 (20)

·         MaximumDynamicBacklog      dword:000003eb (1000)

·         DynamicBacklogGrowthDelta  dword:0000000a (10)

·         Interfaces\TcpAckFrequency dword:00000001 (1)

·         MaxUserPort                dword:0000ffff (65535) (For Windows Server 2003).

For Windows Server 2008, the default dynamic port range has changed. The new default start port is 49152 and the default end port is 65535. Therefore, 16384 ports are available by default.

 

Refer to the Best Practices for System Performance white paper for these and other tuning guidance for IBM Tivoli service management products.

[{"Business Unit":{"code":"BU005","label":"IoT"}, "Product":{"code":"SSLKT6","label":"Maximo Asset Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":""}]

UID

ibm11134699