HP-UX Reference (11i v3 07/02) - 5 Miscellaneous Topics (vol 9)
a
aio_proc_max(5) aio_proc_max(5)
(Tunable Kernel Parameters)
NAME
aio_proc_max - maximum number of async I/O operations that can be queued by any process that uses
aio_reap()
VALUES
Failsafe
0
Default
0
Allowed values
0-0x10000000
Recommended values
0-0x10000000
DESCRIPTION
This tunable places a limit on the system resources that can be consumed by processes that use aio_reap(2).
The limit is enforced at a per-process level to improve scalability as the number of CPUs and processes
increases.
When this tunable is set to 0, it has no effect. That is, resource usage will be restricted by the other limits
provided on HP-UX. (These include
aio_max_ops , aio_physmem_pct
, and setrlimit(2) with
RLIMIT_AIO_OPS) Use of these limits (while keeping
aio_proc_max at 0) ensures compatibility with
POSIX standards and legacy applications.
However, most of these other limits are enforced at the system-wide level, and they can in some cases
reduce scalability. To solve this problem when compatibility with the other limits is not required, the
aio_proc_max tunable can be set.
When aio_proc_max is set to a positive value, it becomes the only tunable limit enforced for processes
that use aio_reap(2). Memory-usage limits (e.g. aio_physmem_pct
or RLIMIT_AIO_MEM) will NOT
be enforced for aio_reap(2) processes when
aio_proc_max is set. However, processes that use POSIX
AIO without aio_reap(2) (i.e. only using standard POSIX interface calls) will continue to have all of the old
limits enforced.
For sysadmins wishing to obtain the increased scalability of aio_proc_max without giving up control of
memory limits, the tunable aio_iosize_max
can be set. That tunable limits the size of each I/O,
effectively constraining the total memory usage of all processes that use aio_reap(2) by the quantity:
(max number of process on system) * aio_proc_max * aio_iosize_max
This approach provides full control of system-wide resource usage without depending on explicit system-
wide constraints.
Note: when aio_proc_max is set, processes that use aio_reap(2) can still set process-specific limits with
the RLIMIT_AIO_OPS limit. The minimum of
RLIMIT_AIO_OPS and aio_proc_max will be the
value that is enforced by the AIO subsystem. However, ALL other rlimits related to AIO will have no effect
(i.e. will not be enforced) for aio_reap(2) users when
aio_proc_max is non-zero.
Who Is Expected to Change This Tunable?
System administrators that run applications requiring heavy usage of AIO (with aio_reap(2)) to disks or
filesystems.
Restrictions on Changing
This tunable is dynamic. Changes to to this tunable take effect immediately for new processes started after
the change. But they do not impact existing running processes. (That is, any process running at the time
of tuning will be "grandfathered" in, and will adhere to the value held by this tunable at the time the pro-
cess was started)
When Should the Value of This Tunable Be Raised?
aio_proc_max should be raised for applications that make heavy usage of AIO with aio_reap(2).
HP-UX 11i Version 3: February 2007 − 1 − Hewlett-Packard Company 51