aio_proc_thread_pct(5)aio_proc_thread_pct(5)NAMEaio_proc_thread_pct - percentage of all process threads allowed in AIO
pool
VALUES
Failsafe
Default
Allowed values
Recommended values
DESCRIPTION
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 percentage of
threads that can be used by the POSIX AIO system as kernel threads for
issuing I/Os. The percentage is taken as a percentage of which is the
upper bound on the number of threads a process may have.
This tunable interacts with in the following way: the maximum number of
threads used for AIO will be the smaller of the two values defined by
the two tunables; i.e.:
This allows the number of AIO threads to vary dynamically with but to
always be bound by an absolute limit of
Who Is Expected to Change This Tunable?
System administrators that run applications requiring heavy usage of
POSIX AIO to filesystems.
Restrictions on Changing
This tunables 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 do not use very many threads for
their own work, but desire high performance from the POSIX AIO subsys‐
tem.
What Are the Side Effects of Raising the Value of This Tunable?
Some applications that use POSIX AIO but also require a large number of
threads may find that they are unable to create new threads, because
the POSIX AIO thread pool ends up using too many of a process' allow‐
able threads.
In addition, using a larger number of kernel threads might lead to
increased CPU utilization.
When Should the Value of This Tunable Be Lowered?
should be lowered when POSIX AIO performance is acceptable but applica‐
tions using POSIX AIO are seeing errors when trying to create new
threads for other work.
What Are the Side Effects of Lowering the Value of This Tunable?
By ultimately reducing the number of threads available to handle POSIX
AIO requests, overall I/O throughput of the POSIX AIO subsystem could
be reduced.
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. This allows a hard limit to be
imposed, regardless of what value happens to take.
defines the desired relationship between the number of POSIX AIO kernel
threads and the number of I/Os to be serviced.
defines how often (in seconds) the AIO thread mechanism will monitor
itself for adherence to the constraints defined by the tunables above.
WARNINGS
All HP-UX kernel tunable parameters are release specific. This parame‐
ter may be removed or have its meaning changed in future releases of
HP-UX.
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
AUTHOR
was developed by HP.
SEE ALSOkctune(1M), sam(1M), gettune(2), settune(2), aio_proc_threads(5),
aio_req_per_thread(5), aio_monitor_run_sec(5).
Tunable Kernel Parameters aio_proc_thread_pct(5)