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 1024– 65535.
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.
UID
ibm11134699