Kernel-asynchronous I/O
The database server implements KAIO by running a KAIO thread on the CPU virtual processor. The KAIO thread performs I/O by making system calls to the operating system, which performs the I/O independently of the virtual processor.
On a computer and operating system where KAIO is supported, the database server uses KAIO whenever possible, including when direct I/O is enabled. To disable KAIO, set the KAIOOFF environment variable to 1 and restart your server.
The KAIO thread can produce better performance for disk I/O than the AIO virtual processor can, because it does not require a switch between the CPU and AIO virtual processors.
# echo new_value > /proc/sys/fs/aio-max-nrThe current number of allocated requests of all operating system processes is visible in the /proc/sys/fs/aio-nr file.
By default, HCL Informix® allocates half of the maximum number of requests and assigns them equally to the number of configured CPU virtual processors. You can use the environment variable KAIOON to control the number of requests allocated per CPU virtual processor. Do this by setting KAIOON to the required value before starting Informix®.
The minimum value for KAIOON is 100. If Linux™ is about to run out of KAIO resources, for example when
dynamically adding many CPU virtual processors, warnings are printed in the
online.log file. If this happens, the Linux™ system administrator must add KAIO resources as
described previously.
Prior to 15.0.1.x, direct I/O on Linux was supported only on storage devices with a native or emulated 512-byte block size.
Depending on the system configuration, using direct I/O with AF devices can deliver 3x to 8x faster I/O performance compared to AIO.
On Linux x86_64, the base page size is 2 KB. Dbspace chunks that use 2 KB pages—such as the root dbspace or any dbspace containing logical logs or the physical log—will not benefit from this enhancement. Therefore, using AF devices for those chunks is not recommended.
On Linux PPC64LE, where the base page size is 4 KB, this enhancement provides improved I/O performance for all dbspaces.