HPlogo HP-UX Reference > P

physical_io_buffers(5)

Tunable Kernel Parameters
HP-UX 11i Version 2: December 2007 Update
» 

Technical documentation

 » Table of Contents

 » Index

NAME

physical_io_buffers — total buffers for physical I/O operations

VALUES

Default

0 buffers

Allowed values

Minimum: 384 buffers

Maximum: 65535 buffers

DESCRIPTION

Many physical I/O operations in the kernel use a shared pool of small pieces of memory (buffers) to hold data being read or written to the I/O device. If no buffer is provided to the I/O operation routine, and no kernel buffers are available because they are already in use for other physical I/O transactions, the caller must wait for an available buffer. Under heavy I/O load with many threads attempting I/O operations buffer scarcity can have a significant performance impact.

The physical_io_buffers tunable allows the system administrator to raise or lower the amount of kernel buffers to suit the I/O traffic on the machine to avoid this performance bottleneck.

Who is Expected to Change This Tunable?

This tunable should only be modified by those with a complete knowledge of both kernel behavior and underlying device hardware.

Restrictions on Changing

When set to zero (default value), the kernel will attempt to compute the most appropriate value for this tunable. Changes to this tunable take effect immediately.

Attempts to raise this tunable may fail with the ENOMEM error if insufficient memory is available to the kernel to create the needed buffers.

When Should the Value of This Tunable Be Raised?

This tunable should be raised on machines with many I/O devices operating under simultaneous load. Perceptible behavior would be long I/O operation times, where a ps -fl call shows these I/O processes sleeping with the same wait channel (the exact number of the wait channel may vary).

The value of the tunable should be raised to the number of concurrent I/O thread operations times the number of devices. Since this may be difficult to gauge, raising the tunable by the number of sleeping processes as reported by ps -fl above and then monitoring for further bottlenecks would be recommended.

What Are the Side Effects of Raising the Value?

Kernel dynamic memory usage is increased (buffers are not free). Specifically, each buffer requires 608 bytes of memory within the kernel.

When Should the Value of This Tunable Be Lowered?

If the tunable value is above the minimum, and physical memory is a scarce resource then the value can be lowered if one of two cases is true:

  • There are many more buffers than concurrent threads performing reads or writes to the devices on the machine; or,

  • The primary workload of the machine is memory bound and requires additional space so that a corresponding I/O bottleneck is irrelevant to the overall machine usage.

What Are the Side Effects of Lowering the Value?

Physical memory is returned for kernel or user memory needs. Fewer buffers are available for reads or writes to devices and some threads may sleep waiting for buffers. This may reduce system performance for those threads.

What Other Tunable Values Should Be Changed at the Same Time?

A change to physical_io_buffers is independent of any other tunables.

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

physical_io_buffers was developed by HP.