SMB Multichannel still experimental?


pyrater

Recommended Posts

basically what the topic says. Kinda looking for info on why..... I am currently using 802.3 alb due to not having a smart switch but would rather use smb multichannel. I assume its just drop

Quote

interfaces = 192.168.1.20/24;speed=1000000000,

192.168.2.20/24;speed=1000000000
aio read size = 1
aio write size = 1
strict locking = No
use sendfile = No
server multi channel support = Yes

 

into the extra conf spot to enable..

 

ref: https://linustechtips.com/main/topic/864034-problem-setting-up-samba-multichannel-connection-and-achieving-2gbit-trasnfers/

Edited by pyrater
Link to comment
  • 2 years later...

I have the same question. I'm not able to get RSS enabled between my Unraid server and my Windows 10 client which is needed to use Multichannel = Multicore = maximum 10G performance:

8713.image_thumb_6CA58A23.png.9a8962d6596b3ba087fe39ff8b6a6976.png.308953fa251740d752e912f2da54f007.png

 

I tested many different settings as you did (interfaces, speed, etc). But nothing helps.

 

I used this documentation to check if my 10G network adapter of the Unraid server is properly setup and it looks fine:

egrep 'CPU|eth0' /proc/interrupts
            CPU0       CPU1       CPU2       CPU3       
 129:   29144060          0          0          0  IR-PCI-MSI 524288-edge      eth0
 131:          0   25511547          0          0  IR-PCI-MSI 524289-edge      eth0
 132:          0          0   40776464          0  IR-PCI-MSI 524290-edge      eth0
 134:          0          0          0   17121614  IR-PCI-MSI 524291-edge      eth0

ethtool -x eth0
RX flow hash indirection table for eth0 with 4 RX ring(s):
    0:      0     1     2     3     0     1     2     3
    8:      0     1     2     3     0     1     2     3
   16:      0     1     2     3     0     1     2     3
   24:      0     1     2     3     0     1     2     3
   32:      0     1     2     3     0     1     2     3
   40:      0     1     2     3     0     1     2     3
   48:      0     1     2     3     0     1     2     3
   56:      0     1     2     3     0     1     2     3
RSS hash key:
1e:ad:71:87:65:fc:26:7d:0d:45:67:74:cd:06:1a:18:b6:c1:f0:c7:bb:18:be:f8:19:13:4b:a9:d0:3e:fe:70:25:03:ab:50:6a:8b:82:0c
RSS hash function:
    toeplitz: on
    xor: off
    crc32: off

Finally I tried to change the hash algorithm of the network adapter to XOR as well, but it fails because of this bug.

 

Which really bothers me is, that its not possible to check through Windows 10 why the connection does not use RSS.

 

More settings we could test:

https://lists.samba.org/archive/samba/2016-September/202697.html

 

Edited by mgutt
Link to comment

@falconexe

Aaaaaaahhhh..... yesssss! I found a solution 😱 RSS is True  🥳

Get-SmbMultichannelConnection -IncludeNotSelected

Server Name Selected Client IP      Server IP     Client Interface Index Server Interface Index Client RSS Capable Client RDMA Capable
----------- -------- ---------      ---------     ---------------------- ---------------------- ------------------ -------------------
tower       True     10.0.0.3       10.0.0.21     11                     13                     True               False

This one was really hard. At first the story ^^ As mentioned in this thread someone tried to set the "Interfaces" variable, but had no luck. I read the documentation and found this part:

https://www.samba.org/samba/docs/current/man-html/smb.conf.5.html#INTERFACES

Quote

Known keys are speed, capability, and if_index. Speed is specified in bits per second. Known capabilities are RSS and RDMA.

I mean what?! Its able to set the networks capability? How do I do that? I searched and searched and by accident I found a samba bug explaining how this thing needs to be formatted:

interfaces = "172.31.9.162;if_index=1,capability=RSS,speed=100000" "172.31.9.62;if_index=2,capability=RSS,capability=RDMA"

As the documentation mentioned "eth0" in its example I tried different variants like "eth0;capability=RSS", "eth*;capability=RSS", but nothing seemed to work. Then I found this blog post:

Quote

In my case the interface value had to be an IP address. Attempting to specify an interface name (e.g. lagg0 or vlan101) did not work and caused the SMB daemon not to start because it couldn’t find any working interfaces. This is contrary to what the documentation says.

So I replaced the "eth0" against the IP address (10000000000 bits are 10 gbits so remove one zero if you need it for 1G adapters):

interfaces = "192.168.178.9;capability=RSS,speed=10000000000"

Then I restarted the Samba server:

samba restart

And... something strange happened. In Windows, "Get-SmbMultichannelConnection -IncludeNotSelected" returned nothing?! But I reminded the blog post again and tried in Windows the following:

Update-SmbMultichannelConnection

After that the command returned the active Multichannel-Connection with RSS enabled.

 

And now after all this work, what is the benefit... nothing ^^ No joke. I have a working Multichannel connection, RSS is enabled and nevertheless transfering a file uses only one core :(

 

I'll try rebooting server and client. Maybe this helps...

 

... yes, the Client needed a reboot. Now it works :)

Edited by mgutt
  • Like 1
Link to comment

Client Test Results

The client clearly benefits of RSS. The 4th CPU core is not overloaded anymore, the Client runs absolutely smooth, now. Love it.

 

RSS disabled (Client lags)

30202310_2020-09-2416_12_17.png.22b758149422012dfbbec71947f41e26.png

 

RSS enabled (no lags)

449562556_2020-09-2417_22_20.png.00b3b14caf0230c3a7b896c9bdce9a2a.png

 

Conclusion

RSS is a must. It helps distributing the load evenly across the clients and servers CPU. By that the client and server are able to transfer faster. Once set up, it works automatically with all Windows Clients since Windows 8.

 

Need more Performance? Read my Guide:

RSS Server-Load-Test.zip

  • Like 1
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.