Web Images Videos Maps News Shopping Gmail more »
Recently Visited Groups | Help | Sign in
Google Groups Home
Group info
Members: 1620
Language: English
Group categories:
Computers > Software
Computers > Databases
More group info »
Recent pages and files
AIX 5.x Tuning Guide    

Basic Tuning Parameters for AIX 5.x

Author: Jim Idle (jimi removeme at temporal-wave com)

This guide is not a definitive answer to your particular performance issues, it is basicalyl the baseline settings for an AIX system, from whence you can tune your own system to your particular requirements. 

Caveats

  • The parameters shown below will get rid of the usual issues that  arise from a standard tuned AIX 5.x system. 
  • Note that the recommended values are a starting point that will solve issues like apparent hangs or stutters in performance. 
  • Each individual system can be tuned better than this for a particular application. 
  • There are other parameters on AIX 5.3 that may need some attention. 
  • This is a general guideline and some parameters may not affect your particular configuration. 
  • You may find other posts on the jBASE google group concerened with disk striping and JFS vs JFS2.

Introduction

The AIX default (as shipped) tuning parameters are meant only as a guideline to system administrators, who are expected to understand enough about AIX 5.x tuning to observe the system somewhat and perform parameter changes. Experience tells me that a good set of initial tuning parameters for a jBASE system are as below. They should be set in the running kernel (at a quiet time, or wait until everyone is off) and saved for the next reboot (though if you are brave you can install them immediately).

 

Many of the parameters are generic, so they may well apply to other kernels running Oracle and so on. Once these are implemented, then you can use the standard AIX tool sets to refine these paramters for your own situation.

Performance & resource Scheduling->Tuning...->

Scheduler & Memory Load

 Maximum number of PROCESSES allowed per user       [2048]
 Maximum number of pages in block I/O BUFFER CACHE  [40] 
 HIGH water mark for pending write I/Os per file    [32] 
 LOW water mark for pending write I/Os per file     [24] 
 ARG/ENV list size in 4K byte blocks                [64] 
 maxspin                                            [128] 
 v_sec_wait                                         [3]

 

The maxspin parameter limits the number of times that the kernel will go in a loop looking for a kernel locked resource to be freed by a process holding the resource lock. This is only significant for systems with more than one CPU available, but gets more and more significant, the more the number of CPUs on the system. It can cause the machine to spend all its time performing kernel spin locks, especially on JFS file systems, or if the machine is told to wait for read locks on JFS2 file systems, which by default it is  - see below.

The HIGH and LOW water marks for IO are very significant for smoothing out the performance of processes  that issue a lot of writes (and therefore the system), especially if they are background jobs. Without setting these (you can also sometimes get away with setting the syncd wakeup time to say 5 seconds), you often experience significant unexplained pauses on both interactive and batch jobs, whereby the syncd daemon wakes up and goes off in a mad panic trying to flush all the thousands of outstanding disk writes out to disk. The values shown above are basically a start point, and as the IBM tuning guide says, you have to experiment with these sometimes if you slow down the performance of background tasks too much.

Virtual Memory Manager

  maxclient%                                         [75]
  maxfree                                            [992]
  maxperm%                                           [75]
  minperm%                                           [40]
  fasttimo                                           [100]


 

The maxfree parameter should be verified so that the minfree parameter in the same menu yields: maxfree - minfree >= maxpgahead and maxfree - minfree >= j2_maxPagereadAhead. The minfree parameter should also be greater than these pgahead parameters. This ensures that when page ahead of sequential reads is performed, that there is always enough memory made available to the kernel to perform the track reads of the disk.

 

The other parameters are a rough starting point to tell the kernel how much memory to use for cached disk reads vs cached executables and shared libraries (PROGRAMS and SUBROUTINES). In general, the system should then be monitored to see if paging of executable code is being caused. Ideally you reduce the memory ostensibly allocated to executable code down to the minimum required to avoid paging (faults caused by looking for executable code). However, AIX 5.x is pretty good with this stuff and the recommendations here will probably do it.

Network Option Parameters

 

  sb_max                                             [8388608]
  sack                                               [1]
  tcp_recvspace                                      [65536]
  tcp_sendspace                                      [65536]


 

The network parameters basically increase the amount of memory available for the TCP buffers. The sb_max could be too big if the system does not have around 4GB of memory or more.  

Tuning IO Parameters

  hd_pbuf_cnt                                        [3457]
  maxpgahead                                         [512]
  maxrandwrt                                         [1024]
  minpgahead                                         [8]
  numclust                                           [32]
  numfsbufs                                          [1024]
  sync_release_ilock                                 [1]
  j2_nPagesPerWriteBehindCluster                     [32]
  j2_maxRandomWrite                                  [1024]
  j2_nRandomCluster                                  [16]
  j2_nBufferPerPagerDevice                           [1024]
  j2_maxPageReadAhead                                [512]
 

 

The IO parameters are important, though the jFS2 parameters are shown in the hope that the recommendations in the next paragraph in regards to file systems will be taken up. The other parameters are set to allow the kernel to judge IO paging sizes, read ahead buffers and to prevent the syncing of writes to disk from holding a lock on the Inode (the jBASE file), which is not necessary because jBASE knows what needs to be locked at the hash file level. The caveat here is that these parameters only affect IBMs JFS and JFS2 file systems. The Veritas file systems and so on probably have their own set of parameters.

 
The operating system has often been installed using JFS rather than JFS2 file systems. This usually means it was upgraded rather than installed from scratch as a new installation of 5.2/5.3 will use jfs2 filesystems. The JFS2 file system can have some significant performance improvements over the JFS file system. It is recommended that the JFS2 file system is always used with the exception that a JFS file system with journaling turned off can 'sometimes' be faster than a jFS2 file system (journaling cannot be turned off on this file system), for jBASE files, where the JFS journaling is irrelevant anyway. I recommend changing the operating system to be running from JFS2 filesytems.

Summary

 

The author accepts no liability for anything you do wrong by using or abusing this information. Typing the wrong parameters may cause the end of the world, or something close to it for you. Typing the correct ones may solve world hunger. If you find this useful then capture the moment and send me some money to support my alimony payments.

Version: 
Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google