AIX Tip of the Week

Tuning AIX Asynch I/O

Audience: System Administrators

Date: December 21, 2001

Using asynchronous I/O (AIO) can significantly improve write performance. AIO allows an application** to continue processing while it's I/O completes in the background. (By default, applications must wait until it's I/O completes before processing can continue.)

Tuning asynch I/O involves setting the min/max servers as well as maxrequests (smit chaio). If your system is using all of its AIO servers, you should increase maxservers and possibly maxrequests. You can tell how many AIO servers are in use by running the command "pstat -a | grep -c aios" from the root id.

I've found the AIX4.3.3 documentation recommends settings that are too low. The recommendation is 10 AIO maxservers per CPU. However, I recently had to increase AIO maxservers to around 40 per CPU on a p680 running Oracle 8.1.7. It took several iterations to finalize the AIO settings at:

maxservers = 1000
minservers = 500 (half maxservers)
maxrequests= 65536

For more information on asynch I/O:

Asynch I/O Concepts

http://www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/kernextc/async_io_subsys.htm

Tuning Asynch I/O

http://www.rs6000.ibm.com/doc_link/en_US/a_doc_lib/aixbman/prftungd/2365c812.htm

** An application must be written to take advantage of AIO. Many applications and most databases use AIO. Also, you must reboot for AIO changes to take effect.


Bruce Spencer,
baspence@us.ibm.com