Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > A

aio_proc_max(5)

Tunable Kernel Parameters
HP-UX 11i Version 3: February 2007
» 

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

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 further is that more system resources can be used for asynchronous I/Os.

When Should the Value of This Tunable Be Lowered?

aio_proc_max should be lowered when AIO performance is acceptable but there is concern about too many system resources being devoted to AIO.

What Are the Side Effects of Lowering the Value of This Tunable?

As long as it remains a positive value, lowering the value of this tunable simply decreases the number of I/Os that each process can issue. When this tunable is set to 0, it will cease to have an effect, and the system will enforce only the old system-wide tunables described above (see DESCRIPTION).

What Other Tunables Should Be Changed at the Same Time as This One?

No additional tunables need to be changed at the same time as this one.

However, aio_iosize_max can optionally be set if there is an interest in limiting memory usage for AIO.

In addition, when aio_proc_max is set to a positive value, another option is to lower the values of the older system wide limits (such as aio_max_ops and aio_physmem_pct). This is useful because the older limits will have no impact on aio_reap(2) users, and aio_reap(2) users are expected to consume the majority of system resources. (Leaving less resources for processes governed by the older limits)

WARNINGS

All HP-UX kernel tunable parameters are release specific. This parameter 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 values. For information about the effects of installation on tunable values, consult the documentation for the kernel software being installed. For information about optional kernel software that was factory installed on your system, see HP-UX Release Notes at http://docs.hp.com.

AUTHOR

aio_proc_max was developed by HP.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.