Formerly, this value was always 1 because neither the device drivers nor the Unix file system (UFS) could handle multiple block requests. UFS has been modified to cluster together several (up to maxcontig) blocks when doing sequential reads and writes, resulting in higher I/O rates. This is especially beneficial on drives or controllers with track buffers; in some cases it can double or triple the I/O rates.
Newfs sets the value to 7 for many drives, but the best value varies from drive to drive because of the track buffer size as well as the drive geometry. People interested in the getting the utmost performace from their drives can try something like this (note that only the read case is of interest - the write case goes into the cache):
for i in 1 2 3 4 5 6 7 do umount /mnt tunefs -a $i /mnt mount /mnt dd if=/dev/zero of=/mnt/XXX bs=8k count=1000 umount /mnt; mount /mnt # to clear the cache time dd of=/dev/null if=/mnt/XXX bs=8k done
This parameter is limited in the following way:
blocksize * maxcontig must be <= maxphys
maxphys is a read-only kernel variable that specifies the maximum block transfer size (in bytes) that the I/O subsystem is capable of satisfying. On most machines, maxphys is 56 Kbytes; on the sun4c architecture it is currently 124 Kbytes which allows maxcontig to vary from 1 to 15. This value is subject to change. (The limit is enforced by mount.2 not by newfs or mkfs.)
[a manual with the abbreviation ADMIN]
You can tune a file system, but you can't tune a fish.
Created by unroff & hp-tools. © somebody (See intro for details). All Rights Reserved. Last modified 11/5/97