SMB Multichannel

foureight84

Cadet
Joined
Dec 13, 2020
Messages
6
I'm having a bit of a problem getting SMB multichannel to work with the latest version of SCALE and I am hoping someone can help me understand what I did wrong.

I have the following params added to the SMB service Auxilliary Parameters:

server multi channel support = yes
aio read size = 1
aio write size = 1

I've checked smb4.conf using testparm -s and it looks like SMB multichannel is enabled (I believe it's default to 'Yes' in version 4.15 and not showing up). If it were disabled then the flag `server multi channel support = No` would show up in the global config.

root@truenas[~]# testparm -s
Load smb config files from /etc/smb4.conf
lpcfg_do_global_parameter: WARNING: The "syslog only" option is deprecated
Loaded services file OK.
Weak crypto is allowed

Server role: ROLE_STANDALONE

# Global parameters
[global]
bind interfaces only = Yes
disable spoolss = Yes
dns proxy = No
interfaces = 127.0.0.1 192.168.1.10 192.168.1.11
load printers = No
logging = file
max log size = 5120
passdb backend = tdbsam:/var/run/samba-cache/passdb.tdb
printcap name = /dev/null
registry shares = Yes
restrict anonymous = 2
server min protocol = SMB2
server string = TrueNAS Server
idmap config * : range = 90000001 - 100000000
idmap config * : backend = tdb
create mask = 0775
directory mask = 0775

But when I check Windows 11, I only see one connection:

1648560209174.png
 

foureight84

Cadet
Joined
Dec 13, 2020
Messages
6
I've noticed something odd as well. It doesn't seem like the Auxilliary Parameters in the SMB service page is persistent.

After rebooting the NAS and looking at the testparm output I see 'server multi channel support = No'

root@truenas[/mnt/System/Users/wasabi]# testparm -s
Load smb config files from /etc/smb4.conf
lpcfg_do_global_parameter: WARNING: The "syslog only" option is deprecated
Loaded services file OK.
Weak crypto is allowed

Server role: ROLE_STANDALONE

# Global parameters
[global]
bind interfaces only = Yes
disable spoolss = Yes
dns proxy = No
interfaces = 127.0.0.1 192.168.1.10 192.168.1.11
load printers = No
logging = file
max log size = 5120
passdb backend = tdbsam:/var/run/samba-cache/passdb.tdb
printcap name = /dev/null
registry shares = Yes
restrict anonymous = 2
server min protocol = SMB2
server multi channel support = No
server string = TrueNAS Server
idmap config * : range = 90000001 - 100000000
idmap config * : backend = tdb
create mask = 0775
directory mask = 0775
 

morganL

Captain Morgan
Administrator
Moderator
iXsystems
Joined
Mar 10, 2018
Messages
2,694
I don't think we've enabled SMB Multi-channel yet.... we think it needs some testing to ensure it is reliable.

If you really need it and have the time to test... please make a suggestion in "report a bug" or upvote a similar request.
 

foureight84

Cadet
Joined
Dec 13, 2020
Messages
6
I don't think we've enabled SMB Multi-channel yet.... we think it needs some testing to ensure it is reliable.

If you really need it and have the time to test... please make a suggestion in "report a bug" or upvote a similar request.
Will do, thank you!
 

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,554
I don't see this issue in nightlies (with auxiliary parameters). In general though, setting them is discouraged and often my first step with bug reports is to tell people to remove them.
 

foureight84

Cadet
Joined
Dec 13, 2020
Messages
6
I don't see this issue in nightlies (with auxiliary parameters). In general though, setting them is discouraged and often my first step with bug reports is to tell people to remove them.
Thanks for the confirmation. I will just wait until it makes its way into a stable release down the line.
 

morganL

Captain Morgan
Administrator
Moderator
iXsystems
Joined
Mar 10, 2018
Messages
2,694
Is there a way to check if this feature has been tested or is ready yet?
It has been verified to work. Two separate networks on the client. We'll need to document the set-up to make it easier to use.
 

im.thatoneguy

Dabbler
Joined
Nov 4, 2022
Messages
37
It has been verified to work. Two separate networks on the client. We'll need to document the set-up to make it easier to use.
Would be good to get documentation also on setting up RSS so that we can use multichannel with just one NIC.
 

im.thatoneguy

Dabbler
Joined
Nov 4, 2022
Messages
37
Actually it looks like RSS capability is automatically enabled. I added multichannel to the smb extended args and Windows detected TrueNas immediately as RSS capable and opened 4 threads.
 

anodos

Sambassador
iXsystems
Joined
Mar 6, 2014
Messages
9,554
How did you verify?
You can generally verify via powershell. The SMB server advertises it's RSS-capable if the NIC provides this info (there's auto-detection code in Samba for this capability). Hardware being vendors such as they are, I would suspect there are some outliers where things are marketed as such but somewhat inconsistent with what they report to the kernel.
 

Sawtaytoes

Patron
Joined
Jul 9, 2022
Messages
221
You can generally verify via powershell. The SMB server advertises it's RSS-capable if the NIC provides this info (there's auto-detection code in Samba for this capability). Hardware being vendors such as they are, I would suspect there are some outliers where things are marketed as such but somewhat inconsistent with what they report to the kernel.
What PowerShell command can I use to see RSS capabilities of my NIC with SMB?
 

Sawtaytoes

Patron
Joined
Jul 9, 2022
Messages
221
After running `Get-SmbMultichannelConnection` in an Admin PowerShell session, I got `False` for RSS.

1674200296737.png
1674200307089.png


It seems RSS isn't enabled.

What's the API for enabling multichannel?
 

im.thatoneguy

Dabbler
Joined
Nov 4, 2022
Messages
37
What PowerShell command can I use to see RSS capabilities of my NIC with SMB?
On the TrueNAS side you can also check in the shell:

Code:
egrep 'CPU|eno1' /proc/interrupts


eno1 being the NIC interface in my case. or...

Code:
cd /sys/class/net/eno1/queues/
ls
 
Top