Alien-Interference
OS weblog
AIX – Performance Tuning Standards
Categories: AIX

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.

Comments are closed.