VERITAS File SystemÖ 3.5 (HP OnlineJFS/JFS3.5) AdministratorÆs Guide (December 2002)

Chapter 2
VxFS Performance: Creating, Mounting, and Tuning File Systems
I/O Tuning
34
If the file system is being used with VxVM, it is advisable to let the VxFS I/O parameters get set to default
values based on the volume geometry.
If the file system is being used with a hardware disk array or volume manager other than VxVM, try to align
the parameters to match the geometry of the logical disk. With striping or RAID-5, it is common to set
read_pref_io to the stripe unit size and read_nstream to the number of columns in the stripe. For striped
arrays, use the same values for write_pref_io and write_nstream, but for RAID-5 arrays, set
write_pref_io to the full stripe size and write_nstream to 1.
For an application to do efficient disk I/O, it should issue read requests that are equal to the product of
read_nstream multiplied by read_pref_io. Generally, any multiple or factor of read_nstream multiplied by
read_pref_io should be a good size for performance. For writing, the same rule of thumb applies to the
write_pref_io and write_nstream parameters. When tuning a file system, the best thing to do is try out
the tuning parameters under a real life workload.
write_throttle The write_throttle parameter is useful in special
situations where a computer system has a combination of a
large amount of memory and slow storage devices. In this
configuration, sync operations (such as fsync()) may take
long enough to complete that a system appears to hang.
This behavior occurs because the file system is creating
dirty buffers (in-memory updates) faster than they can be
asynchronously flushed to disk without slowing system
performance.
Lowering the value of write_throttle limits the number
of dirty buffers per file that a file system will generate
before flushing the buffers to disk. After the number of dirty
buffers for a file reaches the write_throttle threshold, the
file system starts flushing buffers to disk even if free
memory is still available.
The default value of write_throttle is zero, which puts no
limit on the number of dirty buffers per file. If non-zero,
VxFS limits the number of dirty buffers per file to
write_throttle buffers.
The default value typically generates a large number of
dirty buffers, but maintains fast user writes. Depending on
the speed of the storage device, if you lower
write_throttle, user write performance may suffer, but
the number of dirty buffers is limited, so sync operations
will complete much faster.
Because lowering write_throttle may in some cases delay
write requests (for example, lowering write_throttle
may increase the file disk queue to the max_diskq value,
delaying user writes until the disk queue decreases), it is
advisable not to change the value of write_throttle
unless your system has a combination of large physical
memory and slow storage devices.