[Cluster-devel] (no subject)
Dave Chinner
dchinner at redhat.com
Fri Feb 5 05:45:23 UTC 2010
These patches improve sequential write IO patterns and reduce ordered
write log contention.
The first patch is simply for diagnosis purposes - it enabled me to
see where Io was being dispatched from, and led directly to he fix
in the second patch. The third patch removes the use of WRITE_SYNC_PLUG for
async writes (data, metadata and log), and the third moves the AIL pushing out
from under the log lock so that incoming writes can still proceed while
the log is being flushed.
The difference is on a local disk that XFS can do 85MB/s sequential
write, gfs2 can do:
cfq noop
vanilla 38MB/s 48MB/s
+2 48MB/s 65MB/s
+3 48MB/s 65MB/s
+4 51MB/s 75MB/s
The improvement is due to the IO patterns resulting in the disk being IO bound,
and the subsequent improvements in IO patterns directly translate into more
throughput
On a faster 4-disk dm stripe array on the same machine that XFS can do 265MB/s
(@ 550iop/s) sequential write, gfs2 can do:
cfq noop
vanilla 135MB/s @ 400iop/s 130MB/s @ 800iop/s
+4 135MB/s @ 400iop/s 130MB/s @ 500iop/s
No improvement or degradation in throughput is seen here as the disks never get
to being IO bound - the write is cpu bound. However, there is an improvement in
iops seen on no-op scheduler as a result of the improvement in IO dispatch
patterns.
The patches have not seen much testing, so this is really just a posting
for comments/feedback at this point.
More information about the Cluster-devel
mailing list