728x90

Question

This article goes over the environment variable that can be used to change the default resources used by the engine for Kernel Asynchronous I/O (KAIO) on the IBM AIX platform.

Answer

If you seem to have sluggish performance during peak I/O usage times or see a message in the online.log that says:


    KAIO out of OS resources errno = 11

    or
    *** _aiowrite() returning EAGAIN ***

Then the Kernel Asynchronous I/O (KAIO) subsystem may need to be tuned. The IBM Informix engines do this thru an Operating System (OS) structure called an Asynchronous IO Control Block (AIOCB). A certain number of AIOCB's are allocated at initialization time and reused as long the instance is online. If the number of AIOCB's is low, performance will be negatively impacted because the engine will be forced to wait until an AIOCB becomes available.

To change the number of AIOCB's defined, set the environment variable IFMX_AIXKAIO_NUM_REQ to the desired number, then shutdown and restart the database engine. If the value of IFMX_AIXKAIO_NUM_REQ is greater than 4096, then 4096 AIOCB's will be allocated. If the value of IFMX_AIXKAIO_NUM_REQ is less than 128, then 128 AIOCBs will be allocated. If IFMX_AIXKAIO_NUM_REQ is not set, then the default value is 1024. These values may change in future versions of the OS or engines.

Example:
    To lower the number of concurrent KAIO requests to 512 from the default of 1024 : 
      $  export IFMX_AIXKAIO_NUM_REQ=512



Tuning Kernel Asynchronous IO (KAIO) for IBM Informix on AIX

http://www-304.ibm.com/support/docview.wss?uid=swg21083472


IC50164: KAIO: OUT OF RESOURCES, ERRNO 11 REQUIRES INCREASE IN IFMX_AIXKAIO_NUM_REQ on AIX FROM 4K TO 8K

http://www-304.ibm.com/support/docview.wss?uid=swg1IC50164

728x90

+ Recent posts