]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commit
repair: Increase default repair parallelism on large filesystems
authorDave Chinner <dchinner@redhat.com>
Wed, 13 Nov 2013 06:40:59 +0000 (06:40 +0000)
committerRich Johnston <rjohnston@sgi.com>
Thu, 14 Nov 2013 15:00:39 +0000 (09:00 -0600)
commit0cce4aa198f0470817bedb3781ea5b6955e43076
tree8998ed242cead3ed1a43db2da63e7a67869208d5
parent61510437c627b529feb95ebffddd73df5ed5b104
repair: Increase default repair parallelism on large filesystems

Large filesystems or high AG count filesystems generally have more
inherent parallelism in the backing storage. We should make use of
this by default to speed up repair times. Make xfs_repair use an
"auto-stride" configuration on filesystems with enough AGs to be
considered "multidisk" configurations.

This difference in elapsed time to repair a 100TB filesystem with
50 million inodes in it with all metadata in flash is:

Time IOPS BW CPU RAM
vanilla: 2719s  2900  55MB/s  25% 0.95GB
patched:  908s varied varied varied 2.33GB

With the patched kernel, there were IO peaks of over 1.3GB/s during
AG scanning. Some phases now run at noticeably different speeds
- phase 3 ran at ~180% CPU, 18,000 IOPS and 130MB/s,
- phase 4 ran at ~280% CPU, 12,000 IOPS and 100MB/s
- the other phases were similar to the vanilla repair.

Memory usage is increased because of the increased buffer cache
size as a result of concurrent AG scanning using it.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
repair/xfs_repair.c