Wednesday, July 8, 2009

Tuning UFS

Tuning UFS
----------------
All the tuning parameters must be verified against tuning parameter guides of respective OS versions.


Look for “Solaris Tunable Parameters” in docs.sun.com for details, following are some of the tips for UFS.

• forcedirectio — File systems were mounted with forcedirectio enabled.
The use of direct I/O is appropriate for sequential I/O on very large files, especially
files that are significantly larger than an operating system’s RAM file cache. This can
improve performance by reducing the overhead of a file cache. Direct I/O is not
recommended for all workloads, for instance operations with random I/O patterns
(such as sorts) for the most part are much faster with a file cache. A file cache is a
primary mechanism to hide disk latency, so by default it is always on.

forcedirectio

• maxphys —The maxphys parameter in the /etc/system file, which controls
the maximum number of bytes that a device driver read or writes at any one time
was modified from the default value of 128K to 8 MB by adding the following line:

set maxphys=0x800000


• ssd_max_xfer_size — The Fibre Channel disk maximum transfer parameter
was modified to 8 MB to reflect the change in maxphys. The ssd driver enables
large transfers for a specific file by checking the ssd_max_xfer_size definition
in the /kernel/drv/ssd.conf file. If this definition does not exist, the driver
uses the default value, which is 1024 x 1024 bytes. The following line needs to added
to the /kernel/drv/ssd.conf file.

ssd_max_xfer_size=0x800000;


• sd_max-xfer_size — The SCSI disk maximum transfer parameter was modified
to 8 MB to correspond with maxphys. This parameter works similarly to the Fibre
Channel disk maximum transfer parameter. The following line needs to be added to
the /kernel/drv/sd.conf file.

sd_max_xfer_size=0x800000;


• To increases about n% of RAM available for file system buffer cache instead of the default of 12%.

segmap_percent=n

• If ufs_WRITES is non-zero, the number of bytes outstanding for writes on a file is checked.
See ufs_HW subsequently to determine whether the write should be issued or should be deferred
until only ufs_LW bytes are outstanding. The total number of bytes outstanding is tracked
on a per-file basis so that if the limit is passed for one file, it won't affect writes to other files.

ufs:ufs_WRITES=0

• In order to put the full contents of the large into the filesystem cache,
we need to make sure the filesystem cache is large enough to hold the file and we need to adjust
freebehind to allow ungoverned population of the filesystem cache

ufs:freebehind=0

No comments:

Post a Comment