"Warning: lio_listio returned EAGAIN. Performance degradation may be seen"

Each AIO is handled by a single kproc, and the kproc will not be able to handle any more requests until that I/O is finished. Thus, for an AIO intensive application, it needs to have enough AIO processes configured to meet the peak load demand. The number of AIO kproc is controlled by two AIO configurable parameters: minservers and maxservers. The defaults for these two parameters are 1 and 10 respectively. If an application is running out of AIO kproc handlers, the application will get a kernel error, and usually it is the application that sends a message for the user.

At the test run, Oracle produced the following error message in its log file:

"The error is Warning: lio_listio returned EAGAIN. Performance degradation may be seen"

Tuning

The solution for this problem is to increase the value of maxservers. There is no definitive value for all cases; it depends on the application, the work load, and the system it is running on. In the benchmark case, the maxservers value was first increased by 10 fold. Oracle still sent out the above error message. It was bumped to 20 fold and finally set at 800. The general rule for determining minservers value is 0.5 of maxservers. So, in this case it was 400.

"Maximum number of REQUESTS" indicates the maximum number of asynchronous I/O requests that can be outstanding at one time. This includes requests that are in progress, and those that are waiting to be started. It would be appropriate for a system with a high volume of asynchronous I/O to have a large asynchronous I/O requests value.

From smitty aio, issuing Change / Show Characteristics of Asynchronous I/O will yield:

                          Change / Show Characteristics of Asynchronous I/O

Type or select values in entry fields.
Press Enter AFTER making all desired changes.
  
                                                  [Entry Fields]
MINIMUM number of servers                         [400]
MAXIMUM number of servers                         [800]
Maximum number of REQUESTS                        [12288]
Server PRIORITY                                   [39]
STATE to be configured at system restart          available
State of fast path                                enable 

After the changes, a system reboot is required for the system to use the new values.