Why is SMB so damned slow
I am getting my 40Gbit fiber network back up. I typically run the mellanox ConnectX-3 and -4 cards through M.2 slots or eGPU enclosures so it tends to limit their throughput to 22Gbits max. In practice with iperf3 testing I achieve between 13 and 20 Gbps.
That all is fine. Totally fine. Because the old 40Gbit gear is still a lot cheaper than "normal" 10Gbit gear, and I'm exceeding 10Gbit.
But transfer speeds over SMB (Linux to windows in particular) are simply atrocious. It regularly throttles below 1Gbit speed. I currently have 7 spindles in my main ZFS pool so I can sustain a healthy 1GB/s sustained read copying out of the pool, which matches up more or less with about 200MB/s from each disk and 5 disks worth of data being read concurrently. I just did a test serving a file to my windows machine with a simple python3 server and receiving it with curl and it managed 925MB/s. But robocopy can only do like 80MB/s. simply copying with windows explorer manages to average also less than 100MB/s (the speed compared to robocopy ramps up and down a lot while robocopy goes at the same rate, also robocopy would be accessing it through samba)
I think I'm ready to just ditch samba entirely, but I want to access my huge zfs pool from macos and windows machines on the network. Any recommendations?