How to improve (maybe) the performance of AIX

Of all the dark arts of system administration, system optimisation under AIX is probably one of the darkest and strangest, right up there with necromancy and devil-worshipping.

To be quite honest, even the information coming from IBM itself can be quite strange and contradictory. So, take the following with a large grain of salt: I am just writing about things I have seen work (more or less) in production.

The usual disclaimer apply: USE AT YOUR OWN RISK. And don't bother me if it does not work... mmmmKay?

Default AIX behaviour

One very important thing to understand about AIX is that the default settings of an AIX server are that of a file server.

In other words, an AIX server is conceived to serve files over NFS, over FTP, over Samba, etc...

But what if your AIX server is not a file server, but an application server? Well, if that's the case, the default settings are not adequate, and your machine will be s-l-o-w... :-(

How to change the default AIX behaviour

Here are several steps you can follow to improve the performance of an AIX server. Please note that this applies mainly to AIX 5.x machines. I think they can also be applicable to 4.x machines, but I cannot give any guarantee they work with version < 5.

Follow the (simple and single) step below:

The vmo command is used to control the virtual memory management of an AIX machine. Of course, you should read the man page before doing anything rash...

The maxclient option of vmo is usually set at about 80%. This value can be safely lowered at 40% and maybe even 20%. This yields significant improvements in performance.

The minprem option of vmo is also usually set fairly. This value can be safely lowered at 20% and maybe even 5%. Again, this may yield significant improvements in performance, but your mileage may vary.

Use the vmo -a command as follows:

root@galactus$ vmo -a | grep -i maxclient
	    maxclient% = 40
      strict_maxclient = 1

root@galactus$ vmo -a | grep -i minperm
	      minperm = 75333
	      minperm% = 5
root@galactus$ vmo -o maxclient%=40 -o minperm%=5
Setting minperm% to 5
Setting maxclient% to 40

WARNING: The command shown above will only modify the values temporarily, for testing purposes for instance.

The following command will set new values for maxclient and minperm permanently:

bash-3.00# vmo -p -o maxclient%=40 -o minperm%=5
Setting minperm% to 5 in nextboot file
Setting maxclient% to 40 in nextboot file
Setting minperm% to 5
Setting maxclient% to 40

In the message shown above, the important part is that the values are set in nexboot file, which makes the change permanent.

Modifying the vmo values, as shown above, is very useful, again, for an application server: feel free to ignore this advice if your AIX machine is not of that type!

Hope this helps...

See Also:

Many thanks to: