I've suspected this for quite a while, so I conducted a small test.
I took a folder with ~95K files, ~24GB and copied to and from my Unraid server and to and from an old NAS I have.
The Unraid server has AMD Ryzen 5 5600G, 16GB RAM. I also have an NVME cache drive.
The old NAS has Atom D525, 4GB RAM, and 5 3TB drives, running latest OpenMediaVault.
All machines are connected to the same switch, 1GB ethernet.
The source machine is an Intel I7 6700T with a SATA SSD.
I copied the files to the NAS, to the Unraid server using the standard shares, where the files will be stored on the cache drive, and to the Unraid server to a direct share to cache drive.
The copy operation was performed with Robocopy using 4 threads.
Times:
Local -> Unraid user share: 23m
Local -> Old NAS: 19m
Local -> Unraid direct share: 6m
Unraid user share -> Local: 10m
Old NAS -> Local: 8m
Unraid direct share -> Local: 6m
This explains why I get so low performance running applications that store data directly on the network shares.
I know that Unraid adds latency to network operations because of shfs, and I don't expect write operations to be as fast as RAID-5, and that's why I added the NVME drive, but I didn't expect this.
Is there any way to reduce the latency (that does not include direct mounting, as that defeats the purpose) ?