JFS Tuning and Performance

25
read_ahead
The default read_ahead value is 1 and is sufficient for most file systems. Some file systems with non-
sequential patterns may work best if enhanced read ahead is enabled by setting read_ahead to 2.
Setting read_ahead to 0 disables read ahead. This tunable does not affect direct I/O or concurrent
I/O.
discovered_direct_iosz
Read and write requests greater than or equal to discovered_direct_iosz are performed as direct I/O.
This tunable has no impact if the file system is already mounted for direct I/O or concurrent I/O. The
discovered_direct_iosz value should be increased if data needs to be cached for large read and write
requests, or if read ahead or flush behind is needed for large read and write requests.
max_diskq
The max_diskq tunable controls how data from a file can be flushed to disk at one time. The default
value is 1 MB and must be greater than or equal to 4 * write_perf_io. To avoid delays when flushing
dirty data from cache, setting max_diskq to 1 GB is recommended, especially for cached storage
arrays.
write_throttle
The write_throttle tunable controls how much data from a file can be dirty at one time. The default
value is 0, which means that write_throttle feature is disabled. The default value is recommended for
most file systems.
Extent allocation policies
Since most applications use a write size of 8k or less, the first extent is often the smallest. If the file
system uses mostly large files, then increasing the initial_extent_size can reduce file fragmentation by
allowing the first extent allocation to be larger.
However, increasing the initial_extent_size may actually increase fragmentation if many small files
(<8k) are created, as the large initial extent is allocated from a large free area, then trimmed when
the file is closed.
As extents are allocated, they get progressively larger (unless the file is trimmed when it is closed).
Extents will grow up to max_seqio_extent_size blocks (default 2048 blocks). The
max_seqio_extent_size file system tunable can be used to increase or decrease the maximum size of
an extent.
qio_cache_enable
The qio_cache_enable tunable enables Cached Quick I/O for file systems mounted for Quick I/O
(qio).
System wide tunables
Several system wide tunables are available which can be modified to enhance performance. These
tunables help control enhanced read ahead, buffer cache, the VxFS Inode Cache, and the Directory
Name Lookup Cache (DNLC) and can be tuned with the kctune(1M) command.
Buffer cache on HP-UX 11i v2 and earlier
dbc_min_pct / dbc_max_pct
The system tries to keep frequently accessed data in special pages in memory called the buffer cache.
The size of the buffer cache can be tuned using the system wide tunables bufpages and/or nbuf for
static buffer cache, and dbc_max_pct and dbc_min_pct for dynamic buffer cache. Dynamic buffer