First off - I hope everyone had a good Easter break if you follow Easter in
your part of the world.
The Easter break allowed me to catch up on a bit of testing of XFS & LVM that
I hadn't had time for over the last couple of weeks What I found was that
with a minor modification to a LVM patch the combination of 2.4.18-xfs CVS &
LVM-1.1rc1 seem more stable now than 5-7 weeks ago with regard to general
usage including snapshots. My LVM test script actually completes without
taking down the box. Previously I was able to run the LVM test by hand but
if I used a script the machine would go belly-up. After quite a few runs of
the test script - this seems to be no longer the case. I will be continuing
to test this under different circumstances in the future to make sure.
However I have noticed a huge reduction in the ability of 2.4.18-xfs CVS to
handle very high I/O loads. Another test I run is using many background `cp`
processes to copy a 266M directory across a volume. The XFS CVS of the
20020316-1356 EST (+10hrs from UTC) can handle without problems 100
background `cp` processes - the test takes 14+hrs but the machine emerges
from the test still standing. Whereas the XFS CVS of the 20020329-1644 EST
does not survive even 80 background `cp` processes. (40 completes - 60 is
currently in test)
After reading the mailing list I have seen many posts between the 16th March
and the 29th March regarding changing the memory handling of XFS. The
following links are some of the major ones I found:
How can I help in tracking down which change modified the heavy I/O
behaviour? and what can I do to help fix it?
What further information do people need/want?
On a positive note it appears that the deleting of large amounts of data is
much faster with the XFS CVS of the 20020329-1644 EST. I do not have actual
times but it suprised me - I went to get a coffee and it was finished when I
got back - that never happened before. Thanks for those that improved this
part of XFS.
An example of the test script:
# ==== High I/O test script ====
cp -fr 01 2
for (( i=80; i!=2; i-- )) ; do
cp -fr 01 $i &
# echo $i
(Public Key available on request.)