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_req_per_thread(5)

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

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index

NAME

aio_req_per_thread — desirable ratio between number of pending AIO requests and servicing threads

VALUES

Failsafe

4

Default

1

Allowed values

1-100

Recommended values

1-100

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_req_per_thread specifies, on a per-process basis, the desirable ratio between the number of pending POSIX AIO requests and the number of threads in the AIO thread pool.

The number of threads in the AIO thread pool is bounded by the tunables aio_proc_thread_ptct and aio_proc_threads, but the aio_req_per_thread tunable determines how the AIO thread pool behaves within that bound. aio_req_per_thread determines how much the AIO thread pool grows as the number of outstanding AIO requests grows, by defining how many I/Os each thread will be responsible for.

Who Is Expected to Change This Tunable?

System administrators that run applications requiring heavy usage of POSIX AIO to filesystems.

Restrictions on Changing

This tunable 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_req_per_thread should be raised for applications that want to limit the number of threads used by the POSIX AIO subsystem. Applications would want to do this to either free up more process threads for other work, or to limit the level of concurrency inside POSIX AIO, perhaps to reduce load on physically limited I/O devices.

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

By allowing less threads for POSIX AIO requests, concurrency is reduced and AIO I/O requests will have to wait longer for servicing. This can result in increased latency and reduced POSIX AIO performance on systems whose I/O stack could otherwise handle heavier loads. On the other hand, less threads per request can result in less context switching, reducing the CPU utilization of POSIX AIO.

When Should the Value of This Tunable Be Lowered?

aio_req_per_thread should be lowered when applications want to maximize the concurrency and performance of POSIX AIO requests. This should be done when an application does not need a large number of threads for other work.

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

Lowering this tunable results in more threads being used by POSIX AIO to handle I/O requests, which could increase CPU usage and use up threads that applications might need for other work. On the other hand, POSIX AIO performance should increase.

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

aio_proc_threads interacts with this tunable by setting a strict limit on the number of threads that can be used for POSIX AIO.

aio_proc_thread_pct interacts with this tunable by setting a limit on the number of threads that can be used for POSIX_AIO, but does so based on a percentage of the maximum number of allowable process threads. This allows the AIO thread pools to respond dynamically to changes in max_thread_proc.

aio_monitor_run_sec 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 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_req_per_thread 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.