]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC r321794: Improve FHA locality control for NFS read/write requests.
authormav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 7 Aug 2017 07:40:00 +0000 (07:40 +0000)
committermav <mav@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 7 Aug 2017 07:40:00 +0000 (07:40 +0000)
commitc6ef53fa26ea5f97fcabf2f7848924fe9a22c6fd
tree695641725a814669de61852a074ba5a631a584ce
parent76d25823aba99986a7e28fe0737ab2c4cdc92cb5
MFC r321794: Improve FHA locality control for NFS read/write requests.

This change adds two new tunables, allowing to control serialization for
read and write NFS requests separately.  It does not change the default
behavior since there are too many factors to consider, but gives additional
space for further experiments and tuning.

The main motivation for this change is very low write speed in case of ZFS
with sync=always or when NFS clients requests sychronous operation, when
every separate request has to be written/flushed to ZIL, and requests are
processed one at a time.  Setting vfs.nfsd.fha.write=0 in that case allows
to increase ZIL throughput by several times by coalescing writes and cache
flushes.  There is a worry that doing it may increase data fragmentation
on disks, but I suppose it should not happen for pool with SLOG.

Sponsored by: iXsystems, Inc.

git-svn-id: svn://svn.freebsd.org/base/stable/10@322138 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfsserver/nfs_fha_new.c
sys/nfs/nfs_fha.c
sys/nfs/nfs_fha.h