aio_proc_thread_pct.5 (2010 09)

a
aio_proc_thread_pct(5) aio_proc_thread_pct(5)
(Tunable Kernel Parameters)
NAME
aio_proc_thread_pct - percentage of all process threads allowed in AIO pool
VALUES
Failsafe
50
Default
70
Allowed values
10-100
Recommended values
10-90
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 behavior 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 individual manpages for details on each of these tunables.
The tunable
aio_proc_thread_pct
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
max_thread_proc
, which is the upper bound on the number of threads a process may
have.
This tunable interacts with
aio_proc_threads
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.:
MIN (aio_proc_threads, aio_proc_thread_pct * max_thread_proc)
This allows the number of AIO threads to vary dynamically with max_thread_proc
, but to always be
bound by an absolute limit of
aio_proc_threads
.
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 immediately 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
aio_monitor_run_sec.
When Should the Value of This Tunable Be Raised?
aio_proc_thread_pct should be raised for applications that do not use very many threads for their
own work, but desire high performance from the POSIX AIO subsystem.
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
allowable 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?
aio_proc_thread_pct 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.
HP-UX 11i Version 3: September 2010 1 Hewlett-Packard Company 1

Summary of content (2 pages)