what is fsck's "slowdown"?
Matthew Dillon
dillon at apollo.backplane.com
Fri Sep 3 23:45:18 PDT 2004
There may be some tricks you can use to improve your fsck times on that
large partition.
The first thing you can try is to compile up an fsck with a much larger
in-program disk buffer cache. cd into /usr/src/sbin/fsck and edit
fsck_ffs/fsck.h. Significantly increase MAXBUFSPACE and INOBUFSIZE.
e.g. try increasing MAXBUFSPACE from 40MB to 200MB, and INOBUFSIZE from
56MB to 200MB.
Another possibility would be to try to improve disk I/O linearity by
modifying getdatablk() in fsutil.c to read-ahead several blocks rather
then just one. This would require some programming.
The remaining tricks involve reformatting the large partition to
increase the block size and/or increase the number of bytes/inode
(thus reducing the number of inodes). The larger the block size, the
easier it is for fsck to track down indirect blocks. The fewer inodes
the partition has, the less work fsck has to do. But, of course, to do
this you have to backup all the data on the partition, newfs it with
the new parameters, and restore all the data back. Maximizing the
number of cylinders/group also helps a great deal but I think newfs
already does that by default.
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the freebsd-current
mailing list