I/O scheduler updates to help HAMMER.

Matthew Dillon dillon at apollo.backplane.com
Thu Sep 10 19:30:52 PDT 2009

    I am trying very hard to improve HAMMER's performance for this release.
    One of the issues we've had is that HAMMER really likes to cache dirty
    buffers.  A great deal of the flushing of dirty buffers is disconnected
    from the processes issuing the original I/O and pushed to disk by
    the HAMMER flusher threads.

    Up until now this meant that when the system buffer cache was full of
    dirty buffers, the system did not discriminate between processes trying
    to write a small amount of data verses a lot of data, and so the
    processes writing small amounts of data wound up getting stalled along
    with the processes writing large amounts of data.  For example, when
    'vi' would create a backup file.

    Now with the scheduler the system will penalize the processes responsible
    for the heavier write loads by making them wait for a larger portion
    of the dirty buffers in the buffer cache to flush before letting them
    continue.  And, at the same time the system will allow processes with
    low write loads to continue creating dirty buffers even if the number
    of dirty buffers in the system is higher then desired.

    This will not magically make light-weight programs (ls, etc) work
    perfectly in the face of a heavy write load from, e.g. a tar extraction,
    but it should improve their performance significantly.

					Matthew Dillon 
					<dillon at backplane.com>

More information about the Kernel mailing list