AIX – Performance Tuning Standards
.AIO Servers
Default Values:
Minservers = 2
Maxservers = 10
Maxrequests = 4096
Rule of Thumb for Oracle Database System:
maxserver = 300
minservers = 100
maxrequests = 8192
Command: chdev -l aio0 –P -a maxservers=$MAX -a minservers=$MIN –a
maxreqs=8192
- JFS Buffer-Cache
Default Values:
maxperm = 80%
minperm = 20%
strict_maxperm = 0
Rule of Thumb for Database System
DB is on FileSystem & Mounted as DIO
Strict_maxperm = 1
maxperm = 20%
minperm = 5%
Rule of Thumb for system with > 2 Gbyte of RAM
Strict_maxperm = 1
maxperm = 20%
minperm = 5%
Command: [AIX 5.2 and above] vmo –p –o maxclient%=20
Command: [AIX 5.2 and above] vmo –p –o strict_maxperm%=1
Command: [AIX 5.2 and above] vmo –p –o maxperm%=20
Command: [AIX 5.2 and above] vmo –p –o minperm%=5
Command: [AIX 5.1 and below] vmtune -p $MINPERM -P $MAXPERM
To view all currently set values: [AIX 5.2 and above] vmo –a
To view individual value: [AIX 5.2 and above] vmo –X maxclient%
- Client File Pages [JFS2 Buffer Cache]
Default
maxclient = 80%
strict_maxclient = 1
Rule of Thumb for Database System
DB is on FileSystem & Mounted as DIO
maxclient = maxperm
Note: strict_maxclient by default is already turned on
Command: [AIX 5.1 and below] vmtune –t $MAXCLIENT
Command: [AIX 5.2 and above] vmo –p –o maxclient%=20
- Maxfree/Minfree Memory [Page Stealing]
Default Values:
minfree = 120
maxfree = 128
Rule of Thumb for System
minfree = 120 * Quantity of CPU’s * Quantity of Memory Pools
maxfree = ( minfree + [maxpgahead ) * Quantity of CPU’s
Quantity of Memory Pools and maxpgahead values can be determined by executing: vmtune –a and looking for the total memory pools value and maxpgahead.
Command: [AIX 5.1 and below] vmtune –f $MIN –F $MAX
Command: [AIX 5.2 and above] vmo –p –o maxperm%=20
Command: [AIX 5.2 and above] vmo –p –o minperm%=5
- Fibre-Channel Device Settings (HBA)
Maximum I/O Transfer Size
Default Value
max_xfer_size = 0×100000 [ 1 MB ]
Maximum number of COMMANDS to queue to the adapter
Default Value
num_cmd_elems = 200
HBA Direct Memory Access transfer buffer
Default value
lg_term_dma = 0×200000 [ 2 MB ]
Rule of Thumb
max_xfer_size = 0×400000 [ 4 MB ]
num_cmd_elems = 512 ( 1024 if a FA is dedicated to that HBA )
lg_term_dma = 0×1000000 [ 16 MB ]
Command: chdev –l fcs0 –P –a max_xfer_size=0×400000 –a num_cmd_elems=512
-a lg_term_dma=0×1000000
*Note, this would change the values for device fcs0, there might have multiple HBA’s [i.e. fcs1, fcs2, etc]
- HDISK tuning – high i/o systems
On high I/O systems (like Data Warehouse), we set the following on each hdisk
Note: hdisk can only be tuned while mount points are not mounted
Queue Depth
Default Value
queue_depth=8
Max transfer buffer
Default Value
max_transfer=
Rule of Thumb
queue_depth = [ 32 if disk is a 4 way meta ] [ 64 if disk is a 8 way meta ]
max_transfer = 0×100000 [ 1 MB ]
The following command should be done with the hdisk? and hdiskpower? in defined state: The symptom of this problem is while attempting to add a disk to a volume group, you get a message like “extendvg: LTG must be less than or equal to max_transfer, blah, blah”
root # rmdev –l hdiskpower?
root # rmdev –l hdisk?
root # chdev –l hdiskpower? –P –a queue_depth=32 –a max_transfer=0×100000
root # cfgmgr
Note: The –P flag on the chdev command allows you to make the change to the device’s characteristics permanently in the Customized Devices object class without actually changing the device. This is useful for devices that cannot be made unavailable and cannot be changed while in the available state. In most cases, as in changing characteristics on a new disk, you would not use the –P flag.