AIX NIM Server Tuning
Here are some tuning options you should consider implementing on your NIM Server. Generally, most NIM servers are probably fairly small with may be one or two vCPUs and perhaps 8GB of RAM. The don't do very much work unless you are installing new LPARs or they are a repository for your mksysb backups every night.
You can refer to my detailed blog post here: aix-nim-server-tuning
Turn off JFS file caching.
Most mksysb images are probably larger than the amount of memory in your NIM server, so there is no point caching the JFS reads or writes on this filesystem. The lpp_source and SPOT directories are generally read or written once with little (if any) re-read or re-write of data.
The exception to this would be if you are installing multiple AIX LPARs in parallel, in which case you could temporarily turn JFS caching back on (# mount -o remount,rw,norbrw,noatime /export/lpp_source or spot)
# mount -o remount,rw,rbrw,noatime /export/mksysb
# mount -o remount,rw,rbrw,noatime /export/lpp_source
# mount -o remount,rw,rbrw,noatime /export/spot
# chfs -a options=rw,noatime,rbrw /export/mksysb
# chfs -a options=rw,noatime,rbrw /export/lpp_source
# chfs -a options=rw,noatime,rbrw /export/spot
Free Memory Pools.
The mksysb images being read or written to the /export/mksysb mount are large, you should ensure that you have enough free memory for the IO buffers. If you are suffering from 'free frame waits' you need to increase the free memory pools.
<code># vmstat -s | grep 'free frame waits'
357746 free frame waits
Increase the free memory pool size. These numbers may look big, but they are the number of 4K pages to keep on the free list per memory pool, so they equal 40MB and 48MB respectivly. If your NIM Server has 8GB of memory, that is not a very big free memory pool size.
# vmo -po maxfree=12288 -o minfree=10240
Sequential read ahead and write behind.
The mksysb images are generally very large and you will be reading and writing them sequentially, so tuning the sequential read ahead and write behind.
# ioo -po j2_nPagesPerWriteBehindCluster=256 -o j2_maxPageReadAhead=1024
Dynamic IO Buffers.
Lastly, allow AIX to dynamically allocate the maximum number of IO buffers if it needs them.
<code># ioo -po j2_dynamicBufferPreallocation=256