I'm doing a few experiments at home using proxmox virtual machines with PCIe passthrough NVME disks to the VM. I am seeing very poor NFS performance in OpenMediaVault 6.0 when I compare the same setup with different operating systems.
The VMs have the following hardware settings (all same):
- 4 vCPU
- 2GB RAM
- MTU 9000 / jumbo frames
- Virtio NIC driver
- PCI passthru NVME drive 256GB Samsung PRO 950
I use fio to test SEQUENTIAL writes using these settings
fio --name=fiotest --filename=/samsung/test1 --size=16Gb --rw=write --bs=1M --direct=1 --numjobs=8 --ioengine=libaio --iodepth=8 --group_reporting --runtime=60 --startdelay=60
NVME write tests from OMV 6.0 OS show expected raw-disk performance:
Run status group 0 (all jobs):
WRITE: bw=897MiB/s (941MB/s), 897MiB/s-897MiB/s (941MB/s-941MB/s), io=52.6GiB (56.5GB), run=60062-60062msec
Run status group 0 (all jobs):
WRITE: bw=895MiB/s (938MB/s), 895MiB/s-895MiB/s (938MB/s-938MB/s), io=52.5GiB (56.4GB), run=60072-60072msec
The proxmox host has 10GB SFP+ uplinks to a client in LAN switch doing these NFS tests. We mount the share via
But the performance is very poor in OpenMediaVault 6.0 - 3 separate attempts output
WRITE: bw=273MiB/s (286MB/s), 273MiB/s-273MiB/s (286MB/s-286MB/s), io=16.0GiB (17.2GB), run=60151-60151msec
WRITE: bw=208MiB/s (218MB/s), 208MiB/s-208MiB/s (218MB/s-218MB/s), io=12.8GiB (13.8GB), run=63341-63341msec
WRITE: bw=282MiB/s (296MB/s), 282MiB/s-282MiB/s (296MB/s-296MB/s), io=16.7GiB (17.9GB), run=60685-60685msec
Shutting down the OMV 6.0 VM and starting up an UNRAID VM with the same hardware settings; then mounting NFS share on client with same settings result in these speed results (very close to max performance of raw disk/fio result)
WRITE: bw=747MiB/s (784MB/s), 747MiB/s-747MiB/s (784MB/s-784MB/s), io=43.8GiB (47.1GB), run=60057-60057msec
A different OS, TrueNAS Scale with same hardware and using NFS share (only difference here is no brtfs support in TNS - so I had to wipe disk and make it ZFS which uses DDR cache and speeds up the performance but skews the numbers as you see here):
WRITE: bw=1468MiB/s (1539MB/s), 1468MiB/s-1468MiB/s (1539MB/s-1539MB/s), io=91.1GiB (97.8GB), run=63547-63547msec
I think there's some performance optimizations possibly missing in OMV for NFS? Given UNRAID is able to provide 90% of the raw-disk performance over NFS some configuration setting feels amiss to me. The only variables in my tests are operating system (and ZFS exception case for truenas as noted before but still I can almost max out my 10Gbit network with all other OS but not with OMV over NFS).