xfs
[Top] [All Lists]

Re: [PATCH] bump up nr_to_write in xfs_vm_writepage

To: Eric Sandeen <sandeen@xxxxxxxxxx>
Subject: Re: [PATCH] bump up nr_to_write in xfs_vm_writepage
From: Olaf Weber <olaf@xxxxxxx>
Date: Tue, 07 Jul 2009 11:07:30 +0200
Cc: xfs mailing list <xfs@xxxxxxxxxxx>, Christoph Hellwig <hch@xxxxxxxxxxxxx>, linux-mm@xxxxxxxxx, "MASON, CHRISTOPHER" <CHRIS.MASON@xxxxxxxxxx>
In-reply-to: <4A4D26C5.9070606@xxxxxxxxxx> (Eric Sandeen's message of "Thu, 02 Jul 2009 16:29:41 -0500")
References: <4A4D26C5.9070606@xxxxxxxxxx>
User-agent: Gnus/5.1007 (Gnus v5.10.7) XEmacs/21.4.3 (irix)
Eric Sandeen writes:

> Talking w/ someone who had a raid6 of 15 drives on an areca
> controller, he wondered why he could only get 300MB/s or so
> out of a streaming buffered write to xfs like so:

> dd if=/dev/zero of=/mnt/storage/10gbfile bs=128k count=81920
> 10737418240 bytes (11 GB) copied, 34.294 s, 313 MB/s

> when the same write directly to the device was going closer
> to 700MB/s...

> With the following change things get moving again for xfs:

> dd if=/dev/zero of=/mnt/storage/10gbfile bs=128k count=81920
> 10737418240 bytes (11 GB) copied, 16.2938 s, 659 MB/s

> Chris had sent out something similar at Christoph's suggestion,
> and Christoph reminded me of it, and I tested it a variant of
> it, and it seems to help shockingly well.

> Feels like a bandaid though; thoughts?  Other tests to do?

If the nr_to_write calculation really yields a value that is too
small, shouldn't it be fixed elsewhere?

Otherwise it might make sense to make the fudge factor tunable.

> +
> +     /*
> +      *  VM calculation for nr_to_write seems off.  Bump it way
> +      *  up, this gets simple streaming writes zippy again.
> +      */
> +     wbc->nr_to_write *= 4;
> +

-- 
Olaf Weber                 SGI               Phone:  +31(0)30-6696752
                           Veldzigt 2b       Fax:    +31(0)30-6696799
Technical Lead             3454 PW de Meern  Vnet:   955-7151
Storage Software           The Netherlands   Email:  olaf@xxxxxxx

<Prev in Thread] Current Thread [Next in Thread>