NFS Performance Tuning for HP-UX 11.0 and 11i Systems

nfs performance tuning for hp-ux 11.0 and 11i systems page 111
Notes:
Page 111July 22, 2002
Copyright 2002 Hewlett- Packard Company
buffer
cache
Server’s interaction with syncer(1M)
syncer(1M) is responsible for keeping the on-disk file system
information synchronized with the contents of the buffer cache
It divides buffer cache into 5 “regions” and awakens every 6
seconds (by default) to scan one of the memory regions (i.e. 20% of
the cache) looking for “dirty” blocks that need to be written to disk
The syncer interval defines the amount of time required to search all
of buffer cache, which defaults to 30 seconds (5 regions * 6 secs.)
Recommendation
Ø This value should only be modified on busy NFS servers with
large buffer caches servicing write-intensive workloads
Ø Reduce the syncer interval to 20 seconds on these systems
The syncer(1M) daemon is responsible for keeping the on-disk file system
information synchronized with the contents of the buffer cache. Syncer divides
buffer cache into 5 “regions” each containing 20% of the total cache. Each region
is processed once per interval. The default interval is 30 seconds, which tells the
syncer to awaken every 6 seconds and process 20% of the cache.
NFS PV3 write data is placed in the server’s buffer cache and marked for delayed
writes semantics. Since syncer needs 30 seconds to process all of buffer cache
(i.e. 6 seconds * 5 regions), this gives a busy NFS server a relatively long period
of time to queue up write requests that need to be flushed. When the syncer flushes
these buffers to disk, they transition to the disk’s queue where they have the
potential of getting in the way of synchronous transfers such as read() requests.
Consequently there have been cases reported where read() calls take many
seconds to complete because they are blocked behind all of the delayed writes
being flushed from the server’s buffer cache. This can make the NFS clients appear
to “hang” for short periods of time.
The syncer interval should be changed in the /sbin/init.d/syncer script itself.