aio_req_per_thread(5)aio_req_per_thread(5)NAMEaio_req_per_thread - desirable ratio between number of pending AIO
requests and servicing threads
The implementation of POSIX AIO on HP-UX uses kernel threads to perform
I/Os to filesystems that do not directly support true asynchronous I/O.
(This distinction is transparent to the user.) The kernel threads are
organized into worker-thread pools (called AIO thread pools) created on
a per-process basis. Since a thread pool mechanism for I/Os introduces
a variety of trade-offs concerning utilization of CPU time vs. I/O
resources, four dynamic tunables are available to customize the behav‐
ior of this thread pool: aio_proc_threads(5), aio_proc_thread_pct(5),
aio_req_per_thread(5), and aio_monitor_run_sec(5). Please see individ‐
ual manpages for details on each of these tunables.
The tunable specifies, on a per-process basis, the desirable ratio
between the number of pending POSIX AIO requests and the number of
threads in the AIO thread pool.
The number of threads in the AIO thread pool is bounded by the tunables
and but the tunable determines how the AIO thread pool behaves within
that bound. determines how much the AIO thread pool grows as the num‐
ber of outstanding AIO requests grows, by defining how many I/Os each
thread will be responsible for.
Who Is Expected to Change This Tunable?
System administrators that run applications requiring heavy usage of
POSIX AIO to filesystems.
Restrictions on Changing
This tunable is dynamic. Changes to to this tunable take effect imme‐
diately for new processes started after the change. They also impact
existing processes, but the speed with which the changes propagate to
running processes is determined by the tunable
When Should the Value of This Tunable Be Raised?
should be raised for applications that want to limit the number of
threads used by the POSIX AIO subsystem. Applications would want to do
this to either free up more process threads for other work, or to limit
the level of concurrency inside POSIX AIO, perhaps to reduce load on
physically limited I/O devices.
What Are the Side Effects of Raising the Value of This Tunable?
By allowing less threads for POSIX AIO requests, concurrency is reduced
and AIO I/O requests will have to wait longer for servicing. This can
result in increased latency and reduced POSIX AIO performance on sys‐
tems whose I/O stack could otherwise handle heavier loads. On the
other hand, less threads per request can result in less context switch‐
ing, reducing the CPU utilization of POSIX AIO.
When Should the Value of This Tunable Be Lowered?
should be lowered when applications want to maximize the concurrency
and performance of POSIX AIO requests. This should be done when an
application does not need a large number of threads for other work.
What Are the Side Effects of Lowering the Value of This Tunable?
Lowering this tunable results in more threads being used by POSIX AIO
to handle I/O requests, which could increase CPU usage and use up
threads that applications might need for other work. On the other
hand, POSIX AIO performance should increase.
What Other Tunables Should Be Changed at the Same Time as This One?
interacts with this tunable by setting a strict limit on the number of
threads that can be used for POSIX AIO.
interacts with this tunable by setting a limit on the number of threads
that can be used for POSIX_AIO, but does so based on a percentage of
the maximum number of allowable process threads. This allows the AIO
thread pools to respond dynamically to changes in
defines how often (in seconds) the AIO thread mechanism will monitor
itself for adherence to the constraints defined by the tunables above.
All HP-UX kernel tunable parameters are release specific. This parame‐
ter may be removed or have its meaning changed in future releases of
Installation of optional kernel software, from HP or other vendors, may
cause changes to tunable parameter values. After installation, some
tunable parameters may no longer be at the default or recommended val‐
ues. For information about the effects of installation on tunable val‐
ues, consult the documentation for the kernel software being installed.
For information about optional kernel software that was factory
installed on your system, see at
was developed by HP.
SEE ALSOkctune(1M), sam(1M), gettune(2), settune(2), aio_proc_threads(5),
Tunable Kernel Parameters aio_req_per_thread(5)