Clustered IO (was: Re: [patch][rfc][rft] vm throughput 2.4.2-ac4)

From: Rajagopal Ananthanarayanan (
Date: Wed Feb 28 2001 - 14:14:08 EST

Rik van Riel wrote:

> Another solution would be to do some more explicit IO clustering and
> only flush _large_ clusters ... no need to invoke extra disk seeks
> just to free a single page, unless you only have single pages left.

Hi Rik,

Yes, clustering IO at the higher level can improve performance.
This improvement is on top of the excellent elevator changes that
Jens Axboe has done in 2.4.2. In XFS we are doing clustering
at writepage(). There are two paths:

        1. page_launder() -> writepage() -> cluster
                # this path under memory pressure.
        2. try_to_free_buffers() -> writepage() -> cluster
                # this path under background writing as in bdflush
                # but can also be used by sync() type operations that
                # work with buffers than pages.

Clustering by itself (in XFS) improves write performance by about 15-20%,
and we're seeing close to raw I/O performance. With clustering
the IO requests are pegged at 1024 sectors (512K bytes)
when performing large sequential writes ...


Rajagopal Ananthanarayanan ("ananth")
Member Technical Staff, SGI.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to
More majordomo info at
Please read the FAQ at

This archive was generated by hypermail 2b29 : Wed Feb 28 2001 - 21:00:17 EST