Fragmentation reduces performance and availability. Regular use of
fsadm's fragmentation reporting and reorganization facilities is therefore advisable.
The easiest way to ensure that fragmentation does not become a problem is to schedule regular defragmentation runs using the
Defragmentation scheduling should range from weekly (for frequently used file systems) to monthly (for infrequently used file systems). Extent fragmentation should be monitored with
fsadm or the
To determine the degree of fragmentation, use the following factors:
An unfragmented file system will have the following characteristics:
A badly fragmented file system will have one or more of the following characteristics:
The optimal period for scheduling of extent reorganization runs can be determined by choosing a reasonable interval, scheduling
fsadm runs at the initial interval, and running the extent fragmentation report feature of
fsadm before and after the reorganization.
The "before" result is the degree of fragmentation prior to the reorganization. If the degree of fragmentation is approaching the figures for bad fragmentation, reduce the interval between
fsadm runs. If the degree of fragmentation is low, increase the interval between
The "after" result is an indication of how well the reorganizer has performed. The degree of fragmentation should be close to the characteristics of an unfragmented file system. If not, it may be a good idea to resize the file system; full file systems tend to fragment and are difficult to defragment. It is also possible that the reorganization is not being performed at a time during which the file system in question is relatively idle.
Directory reorganization is not nearly as critical as extent reorganization, but regular directory reorganization will improve performance. It is advisable to schedule directory reorganization for file systems when the extent reorganization is scheduled. The following is a sample script that is run periodically at 3:00 A.M. from
cron for a number of file systems:
for i in /home /home2 /project /db
/bin/echo "Reorganizing $i"
/usr/bin/time fsadm -e -E -s $i
/usr/bin/time fsadm -s -d -D $i
done > $outfile 2>&1