nfsd.8: Document ways to minimize Copy operation times

For NFSv4.2, a Copy operation can take a long time to complete.
If there is a concurrent ExchangeID or DelegReturn operation
which requires the exclusive lock on all NFSv4 state, this can
result in a stall of the nfsd server.

This patch documents ways to avoid this problem.

This is a content change.

Reviewed by:	karels, wollman, pauamma_gundo.com (manpages)
MFC after:	2 weeks
Differential Revision:	https://reviews.freebsd.org/D44395
This commit is contained in:
Rick Macklem 2024-03-18 15:40:41 -07:00
parent d4135972ae
commit 8f13abb4fd

View File

@ -25,7 +25,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE. .\" SUCH DAMAGE.
.\" .\"
.Dd March 22, 2023 .Dd March 16, 2024
.Dt NFSD 8 .Dt NFSD 8
.Os .Os
.Sh NAME .Sh NAME
@ -353,3 +353,25 @@ to be set to one on the MDS as a workaround.
Linux 5.n kernels appear to have been patched such that this Linux 5.n kernels appear to have been patched such that this
.Xr sysctl 8 .Xr sysctl 8
does not need to be set. does not need to be set.
.Pp
For NFSv4.2, a Copy operation can take a long time to complete.
If there is a concurrent ExchangeID or DelegReturn operation
which requires the exclusive lock on all NFSv4 state, this can
result in a
.Dq stall
of the
.Nm
server.
If your storage is on ZFS without block cloning enabled,
setting the
.Xr sysctl 8
.Va vfs.zfs.dmu_offset_next_sync
to 0 can often avoid this problem.
It is also possible to set the
.Xr sysctl 8
.Va vfs.nfsd.maxcopyrange
to 10-100 megabytes to try and reduce Copy operation times.
As a last resort, setting
.Xr sysctl 8
.Va vfs.nfsd.maxcopyrange
to 0 disables the Copy operation.