Switching the test target to a UFS datastore does not yield notable variation:
dd read of test file on UFS volume initiated directly on NAS:
tardis: test# dd if=test.file of=/dev/null bs=1M
4096+0 records in
4096+0 records out
4294967296 bytes transferred in 37.051260 secs (115919600 bytes/sec)
dd read from Vero:
osmc@osmc:/mnt/test$ dd if=test.file of=/dev/null bs=1M
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 209.627 s, 20.5 MB/s
dd read from Vero (disabled kernel tuning in NAS, which can sometimes cause negative performance oddities):
osmc@osmc:/mnt/test$ dd if=test.file of=/dev/null bs=1M
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 240.677 s, 17.8 MB/s
NFS stats for all the testing session above.
osmc@osmc:/mnt/Media$ nfsstat
Server rpc stats:
calls badcalls badfmt badauth badclnt
0 0 0 0 0
Client rpc stats:
calls retrans authrefrsh
197576 0 197576
Client nfs v3:
null getattr setattr lookup access
0 0% 504 0% 0 0% 9 0% 507 0%
readlink read write create mkdir
0 0% 196031 99% 0 0% 0 0% 1 0%
symlink mknod remove rmdir rename
0 0% 0 0% 0 0% 0 0% 0 0%
link readdir readdirplus fsstat fsinfo
0 0% 0 0% 493 0% 4 0% 8 0%
pathconf commit
4 0% 0 0%
Just for curiosity sake, I’ve tried mounting the share as NFSv4, but it yield no perceivable increase in performance.
Testing it with a macOS (10.14.5) built-in NFS server (with test file hosted on an SSD) resulted in similar peaky, if not a bit slower results (could be due to rsize/wsize being limited to 64k):
osmc@osmc:/mnt/Media$ dd if=test.file of=/dev/null bs=1M
4096+0 records in
4096+0 records out
4294967296 bytes (4.3 GB, 4.0 GiB) copied, 253.471 s, 16.9 MB/s
This sounds to me like an issue with NFS optimisation over wireless LAN.
There are some interesting articles from what I can find in relation to NFS over WLAN, a particularly old one with interesting read - Measuring NFS performance in wireless networks | Semantic Scholar