How to Beta Test SMB Multi-Channel Support

By Jon Panozzo

In a recent episode of the Uncast, I discussed the 10gbps network testing that I did with Unraid. In my experiments, turning on the "experimental" SMB multi-channel support feature resulted in massive gains to both read and write speeds even though other members of our development team didn't need this tweak to get solid throughput. In this blog post, I wanted to show you all how I was able to test this so that you can too! This works on the latest stable and RC releases for Unraid OS (6.9.2 and beyond) and is fairly trivial to do. It is only worthwhile giving this a shot if the following conditions are true:

  1. You have a 10gbps network with a 10gbps NIC in your Unraid server.
  2. You have a sufficiently sized cache pool with enough devices/performance to saturate the 10gbps connection (SSDs / NVMe are preferred).
  3. You have a client device that you will use for testing that also has a 10gbps NIC and preferably NVMe storage.
  4. You have shares created for testing that are either set to Cache = Yes or Cache = Only.

If all of the above is true for you and you want to see what kind of speeds you can get, you can try multi-channel.

WARNING: SMB Multi-Channel Support is still considered experimental at this time. There are corner/edge cases where corruption can occur, so testing this is at your own risk.

ADDITIONAL NOTE: Very recently the Samba dev team put out a notice regarding 4.15-rc2, indicating that multi-channel support will exit the "experimental" phase at that time and will then be enabled by default. So, when Unraid gets Samba 4.15 included in an upcoming release, you'll know when this is no longer considered somewhat risky.

Ok, with the warning out of the way, get ready for the super-complicated crazy steps required to test this thing out!

  1. Stop the array.
  2. Navigate to Settings > SMB Settings.
  3. Add the following to the SMB Extra section:
    server multi channel support = yes
    aio read size = 1
    aio write size = 1
  4. Start the array

And that's all! With those settings turned on, multi-channel support is enabled.

Questions or Comments on this?

Let me know in the forums (tag @jonp)!