disk performance strange/low
Christoph Hellwig
hch at infradead.org
Wed Aug 26 12:56:04 CDT 2009
On Wed, Aug 26, 2009 at 07:20:36PM +0200, Michael Monnerie wrote:
> On Dienstag 18 August 2009 Christoph Hellwig wrote:
> > On Tue, Aug 18, 2009 at 04:08:05AM +0200, Michael Monnerie wrote:
> > > On Montag 17 August 2009 Christoph Hellwig wrote:
> > > > Yes, that sounds like the problem of the VM not feeding us enough
> > > > pages to write. ?What kernel is this on? ?Latest 2.6.31-rc has a
> > > > workaround for it.
> > >
> > > 2.6.27.23-0.1-xen from openSUSE 11.1
> > > I can't switch as I use it with the free Xen. Thanks for the info.
> >
> > Try backporting commit c8a4051c3731b6db224482218cfd535ab9393ff8 from
> > mainline - it should apply just fine to a 2.6.27-ish kernel.
>
> Thank you. I'm not a patcher, could you tell me how to do that?
Just take the patch I attached and apply it using
patch -p1 < xfs-nr-to-write.diff
if you want to make sure it applies cleanly do a
patch -p1 --dry-run < xfs-nr-to-write.diff
beforee to check if it doesn't cause any reject.
After that rebuild your kernel.
-------------- next part --------------
commit c8a4051c3731b6db224482218cfd535ab9393ff8
Author: Eric Sandeen <sandeen at sandeen.net>
Date: Fri Jul 31 00:02:17 2009 -0500
xfs: bump up nr_to_write in xfs_vm_writepage
VM calculation for nr_to_write seems off. Bump it way
up, this gets simple streaming writes zippy again.
To be reviewed again after Jens' writeback changes.
Signed-off-by: Christoph Hellwig <hch at infradead.org>
Signed-off-by: Eric Sandeen <sandeen at sandeen.net>
Cc: Chris Mason <chris.mason at oracle.com>
Reviewed-by: Felix Blyakher <felixb at sgi.com>
Signed-off-by: Felix Blyakher <felixb at sgi.com>
diff --git a/fs/xfs/linux-2.6/xfs_aops.c b/fs/xfs/linux-2.6/xfs_aops.c
index 7ec89fc..aecf251 100644
--- a/fs/xfs/linux-2.6/xfs_aops.c
+++ b/fs/xfs/linux-2.6/xfs_aops.c
@@ -1268,6 +1268,14 @@ xfs_vm_writepage(
if (!page_has_buffers(page))
create_empty_buffers(page, 1 << inode->i_blkbits, 0);
+
+ /*
+ * VM calculation for nr_to_write seems off. Bump it way
+ * up, this gets simple streaming writes zippy again.
+ * To be reviewed again after Jens' writeback changes.
+ */
+ wbc->nr_to_write *= 4;
+
/*
* Convert delayed allocate, unwritten or unmapped space
* to real space and flush out to disk.
More information about the xfs
mailing list