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.
- The computer and operating system support it.
- A performance gain is realized.
- The I/O is to raw disk space.
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.
KAIOOFF=1
in
the environment of the process that starts the server.# echo new_value > /proc/sys/fs/aio-max-nr
The current number of allocated requests of all operating system processes is visible in the /proc/sys/fs/aio-nr file.
By default, Dynamic Version 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 HCL OneDB.
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.