Re: [PATCH RESEND 0/3] Improvements to page writeback commit policy

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

 



> On Jun 21, 2017, at 10:31 AM, Chuck Lever <chuck.lever@xxxxxxxxxx> wrote:
> 
>> 
>> On Jun 20, 2017, at 7:35 PM, Trond Myklebust <trond.myklebust@xxxxxxxxxxxxxxx> wrote:
>> 
>> The following patches are intended to smooth out the page writeback
>> performance by ensuring that we commit the data earlier on the server.
>> 
>> We assume that if something is starting writeback on the pages, then
>> that process wants to commit the data as soon as possible, whether it
>> is an application or just the background flush process.
>> We also assume that for streaming type processes, we don't want to pause
>> the I/O in order to commit, so we don't want to rely on a counter of
>> in-flight I/O to the entire inode going to zero.
>> 
>> We therefore set up a monitor that counts the number of in-flight
>> writes for each call to nfs_writepages(). Once all the writes to that
>> call to nfs_writepages has completed, we send the commit. Note that this
>> mirrors the behaviour for O_DIRECT writes, where we similarly track the
>> in-flight writes on a per-call basis.
> 
> These are the same as the patches you sent May 16th?
> I am trying to get a little time to try them out.

After applying these four patches, I ran a series of iozone
benchmarks with buffered and direct I/O. NFSv3 and NFSv4.0
on RDMA. Exports were tmpfs and xfs on NVMe.

I see about a 10% improvement in buffered write throughput,
no degradation elsewhere, and no crashes or other misbehav-
ior.

xfstests passes with the usual few failures.

Buffered write throughput is still limited to 1GBps when
targeting a tmpfs export on a 5.6GBps network. The server
isn't breaking a sweat, but the client appears to be hit-
ting some spin locks pretty hard. This is similar behavior
to before the patches were applied.


>> Trond Myklebust (3):
>> NFS: Remove unused fields in the page I/O structures
>> NFS: Ensure we commit after writeback is complete
>> NFS: Fix commit policy for non-blocking calls to nfs_write_inode()
>> 
>> fs/nfs/pagelist.c        |  5 ++--
>> fs/nfs/write.c           | 59 +++++++++++++++++++++++++++++++++++++++++++++++-
>> include/linux/nfs_page.h |  2 +-
>> include/linux/nfs_xdr.h  |  3 ++-
>> 4 files changed, 64 insertions(+), 5 deletions(-)
>> 
>> -- 
>> 2.9.4
>> 
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 
> --
> Chuck Lever
> 
> 
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
Chuck Lever



--
To unsubscribe from this list: send the line "unsubscribe linux-nfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystem Development]     [Linux USB Development]     [Linux Media Development]     [Video for Linux]     [Linux NILFS]     [Linux Audio Users]     [Yosemite Info]     [Linux SCSI]

  Powered by Linux