What is SMB Multichannel and Why Should I Care?

If you are in a windows environment (sorry) and your clients and server have multiple NICs, you can combine the bandwidth of multiple nics for faster file trasnfers between client and servers. It works if you have a 10 gigabit server and multiple 1 gigabit NICs in your client, or if you have multiple 1 gigabit nics in your server.

 
It also applies if you have 10 gigabit adapters in both client and server -- these network adapters are so fast that the data typically outpaces what a single CPU core can keep up with. In that case, multichannel still provides a benefit because it splits up the data stream so that multiple CPU cores help handle the workload of moving the data around.
 
Multichannel is meant to be as easy as just plugging in another network card. You don't have to do any software config (that's the promise allthrough it's not entirely true), does not require a special ethernet switch or any configuration on the switch at all, and also simultaneously lowers CPU uage. 
 
Most of the time, it is plug and play. When it isn't so easy, it can be frustrating to troubleshoot. To troubleshoot effectively, it is important to understand how this technology evolved in "the enterprise" before it was thrust upon the unwashed masses in appliances like the quite competent and capable Thecus Windows Sorage Server NAS devices we've reviewed on the channel.
 
There is an introductory video to explain the technologies in play, and this article is a companion to help explain some commands you can use to try in case multichannel goes wrong.
 
SMBMultichannel is a protocol improvement to windows file sharing best found on Windows Server 2012R2 and Windows 8.1 and up. However recent improvements to Windows 10 have made it easier than ever to get SMBMultichannel working. Prior to the August 2016 Windows 10 update, SMB Multichannel was sensitive to things like the machine name being present, with all associated IP addresses, in DNS. Windows DNS & DHCP will do this; good routers have this capability; and pfSense can do this as well. Be sure to check out our video on how to turn an old PC into a pfSense router if you decide you need a reasonable router. 
It is recommended to configure the DNS server address handed out by your DHCP server to be a local machine on your network that will return the IP addresses of ALL local network adapters in use on client computers, but it isn't a hard and fast requirement. In the case of 10 gigabit on both client and server, it is less necessary because a single 10 gigabit adapter is not going to have multiple IP addresses.

 
If you are running 10 gigabit, you will see RDMA capable as being TRUE (or you should). RDMA is the "next tier" of this type of technology for even-lower-cpu-overhead fast file transfer support, and it is really only relevant for 10 and 40 gigabit adapters. 
 
If you are still struggling with Multichannel, please post in the forums. If this was useful for you please thumbs up the video, or post a successs story in the forum. We've had great success clearing 200+ megabytes/sec with mixed Broadcom/Intel, Intel/Realtek and so on. Be aware that multi-port adapters on eBay, especially the older 1000/PT Intel adapter, do not really support advanced features and generally aren't that great. The minimum we'd recommend is an intel i210 PCIe card. 
This screenshot shows a mixed configuration -- a PCIe card fully supporting MSI-X + RSS and another supporting only RSS. In this configuration, SMB Multichannel is unlikely to work. Our suggesting is to disable RSS through device manager on the nic that has the "Indirection table" listed. 
 
 
How can  these things say that SMB Multichannel is not supported when clearly it is working? Great question! The reason is that, for the single card, SMB Multichannel is not supported. You only get one channel. One channel, per card, that is. You see, if you have a low-clockspeed CPU (like a Xeon e5-2503 for example) but a high-speed nic (like 10 gigabit) a single CPU core just can't keep up due to the low clock speed. The situation is similar with old CPUs and low-spec CPUs like low-clock mobile CPUs and i3s -- a single core might be saturated before you hit the full "wire speed" 10 gigabit. So the Intel article linked below is not wrong when it says that SMB Multichannel is not supported -- it just means that on a single i217/i218/i219 you won't get two or more channels served by independent CPU cores.
 
And that, as they say, is the rest of the story.
 
Further Reading:
Footnotes: 
  1. Even intel product specialists have struggled here because of misinformation. Intel forums where "the fix" is not clearly outlined like above: *0 https://communities.intel.com/thread/80805
  2. Intel Says RSS/Multichannel not supported (they mean MSI-X as clearly Multichannel works fine in rock-dumb mode): *1 > http://www.intel.com/content/www/us/en/support/network-and-i-o/000017506...

 


Listen to this as a Podcast

Thanks to our Patreon supporters, our videos are now available as a podcast.