Asynchronous non-blocking I/O (AIO)


I/O operations are time consuming as the read/write is done on disks that need to rotate mechanically. If an application has to perfoamce a (synchronous, blocking) I/O operation, it has to wait until the operation completes, instead of using the available time to continue processing. This results in poor performance of the applications which are I/O intensive. AIO is a common method used by database and file servers to improve the performance concerning I/O operations. The application send the I/O request to a queue and as soon as it receives a confirmation that the operation is queued successfully, it continues to process while the I/O operation is performed in the background.

In AIX, the number of asynchronous I/O kernel processes (AIO servers) can be tuned using minservers and maxservers parameters. The number of min/maxservers is defined per processor. The maximum values these parameters can be assigned are 3 and 30 respectively. If you see the AIO servers reach the maximum threshold on the database server and notice high wait % in the CPU usage statistics, look for expensive SQL statements. In most cases creating an appropriate index solves the problem.

Comments

Popular posts from this blog

OS/DB Migration - CMD. STR, TOC, EXT, R3load, DDLDBS.TPL and more

Fixing Inconsistent Table - Table activation fails due to inconsistency between DD and DB

301 Redirect Using SAP Web Dispatcher