HomeFreeBSD

nfscl: Use vfs.nfs.maxalloclen to limit Deallocate RPC RTT

Description

nfscl: Use vfs.nfs.maxalloclen to limit Deallocate RPC RTT

Unlike Copy, the NFSv4.2 Allocate and Deallocate operations do not
allow a reply with partial completion. As such, the only way to
limit the time the operation takes to provide a reasonable RPC RTT
is to limit the size of the allocation/deallocation in the NFSv4.2
client.

This patch uses the sysctl vfs.nfs.maxalloclen to set
the limit on the size of the Deallocate operation.
There is no way to know how long a server will take to do an
deallocate operation, but 64Mbytes results in a reasonable
RPC RTT for the slow hardware I test on.

For an 8Gbyte deallocation, the elapsed time for doing it in 64Mbyte
chunks was the same (within margin of variability) as the
elapsed time taken for a single large deallocation
operation for a FreeBSD server with a UFS file system.

Details

Provenance
rmacklemAuthored on Sep 18 2021, 9:38 PM
Parents
rG7b2ac8eb9be7: vfs: add missing VIRF_MOUNTPOINT in vfs_mountroot_shuffle
Branches
Unknown
Tags
Unknown