VERITAS Storage Foundation 4.1 Oracle Administrator's Guide
Chapter 14, Tuning for Performance
Prerelease 8 September 2005, 8:55am Tuning VxFS
409
If the file system is being used with VxVM, it is recommended that you set the VxFS I/O
parameters 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,
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 striping 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 lot of memory and
slow storage devices. In this configuration, sync operations (such as
fsync()) may take so long to complete that the system appears to
hang. This behavior occurs because the file system is creating dirty
pages (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
pages per file that a file system will generate before flushing the pages
to disk. After the number of dirty pages for a file reaches the
write_throttle threshold, the file system starts flushing pages to
disk even if free memory is still available. The default value of
write_throttle typically generates a lot of dirty pages, 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 pages is limited, so sync operations will
complete much faster.
Because lowering write_throttle can 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 recommended that you avoid changing the value
of write_throttle unless your system has a a large amount of
physical memory and slow storage devices.