aio_proc_max.5 (2010 09)
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
process 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).
What Are the Side Effects of Raising the Value of This Tunable?
When raising this tunable from its default of 0 to a positive value, the effects described above will take
place. (see DESCRIPTION.) However, once this tunable is a positive value, the only effect of raising it
HP-UX 11i Version 3: September 2010 − 1 − Hewlett-Packard Company 1