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
.\" SUCH DAMAGE.
.\"
.Dd March 22, 2023
.Dd March 16, 2024
.Dt NFSD 8
.Os
.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
.Xr sysctl 8
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.