[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

journal writeback interval (Re: how to counteract slowdown)



This is a pretty interesting discussion about the 5-second journal
writeback interval.  I just observed my system [1] during an 'updatedb'
which causes a lot of seeking and read activity [2] at the same time as
a slow, sustained write.

       io
 bi    bo
580     0
556     0
540     0
336   924
636     0
608     0
524     0
544     0
316  1348
548     0
288     0
  0     0
  0     0
  0  2636

Obviously, there were a lot of missed opportunities to write some blocks
out in those blank spaces.  I'd much rather see 500 blocks out per
second than 2500 blocks out in one second, every five seconds.  Since
the heads are flying all over the disks anyway, there were probably
many, many missed opportunities for essentially free writes during that
time.

It seems like it makes more sense to inject the write requests into the
i/o queue whenever they are ready, if the elevator is walking up and
down the disk anyway.  Definitely 2.5 material, but it would be very
nice if ext3 could instruct the i/o layer to perform operations
opportunistically if possible, and flush the remaining operations every
five seconds.

-jwb

[1] 2.4.12-ac3, ext3, md0 on aic7xxx

[2] An aside: it seems that an 'updatedb' program which knew a lot about
ext2's structure could be smarter.  Instead of recursively descending
the directory structure (and thereby striding all over the disk), it
would walk the disk from beginning to end, building an object graph in
memory.  At the end, it could mark-and-sweep any disconnected objects,
sort the graph, and write out the database.  This would involve only
track-to-track seeking.  Thoughts?





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]