В лабораторной среде Windows я пытаюсь протестировать производительность SMB Direct с помощью адаптеров Mellanox RDMA с глобальной паузой. Я хотел сначала протестировать с Global Pause для простоты, прежде чем переходить на PFC. Думаю, все настроил правильно, но SMB Direct не используется. Я могу это сказать, потому что счетчики производительности RDMA остаются на нуле, а фактическая пропускная способность отображается в диспетчере задач.
Я проверил подключение к RDMA, используя nd_write_bw
в обоих направлениях.
Сервер: Win2019 Datacenter с Mellanox ConnectX-5 100GbE
Клиент: Win10 Pro для рабочих станций с Mellanox ConnectX-4 Lx 25GbE
Обе машины имеют драйвер WinOF2 2.40.50000 с включенным Flow Control Rx / Tx.
На коммутаторе включена глобальная пауза и отключена PFC.
Я включил функцию SMB Direct на клиенте.
На клиенте Get-SmbMultichannelConnection
пусто. Что может быть причиной этого?
Вот конфигурация сервера:
PS C:\Users\Administrator> Get-NetOffloadGlobalSetting | Select NetworkDirect
NetworkDirect
-------------
Enabled
PS C:\Users\Administrator> Get-NetAdapterRDMA fastnet
Name InterfaceDescription Enabled PFC ETS
---- -------------------- ------- --- ---
fastnet Mellanox ConnectX-5 Adapter True False False
PS C:\Users\Administrator> Get-NetAdapterHardwareInfo fastnet
Name Segment Bus Device Function Slot NumaNode PcieLinkSpeed PcieLinkWidth Version
---- ------- --- ------ -------- ---- -------- ------------- ------------- -------
fastnet 0 216 0 0 2 1 8.0 GT/s 16 1.1
PS C:\Users\Administrator> Get-SmbServerConfiguration | Select EnableMultichannel
EnableMultichannel
------------------
True
PS C:\Users\Administrator> Get-SmbServerNetworkInterface
Scope Name Interface Index RSS Capable RDMA Capable Speed IpAddress
---------- --------------- ----------- ------------ ----- ---------
* 6 True False 1 Gbps 192.168.3.55
* 4 True True 100 Gbps 192.168.10.55
PS C:\Users\Administrator> netstat.exe -xan | ? {$_ -match "445"}
Kernel 4 Listener 192.168.10.55:445 NA 0
А вот и конфигурация клиента:
PS C:\Windows\system32> Get-SmbClientConfiguration | Select EnableMultichannel
EnableMultichannel
------------------
True
PS C:\Windows\system32> Get-SmbClientNetworkInterface
Interface Index RSS Capable RDMA Capable Speed IpAddresses Friendly Name
--------------- ----------- ------------ ----- ----------- -------------
6 True True 40 Gbps {fe80::d1ac:ef30:6f70:a1bc, 169.254.161.188} chelsio40
4 True True 25 Gbps {192.168.10.53} mlnx25
8 True False 1 Gbps {fe80::f912:79b2:e851:3cb4, 192.168.3.53} housenet
PS C:\Windows\system32> Get-SmbConnection
ServerName ShareName UserName Credential Dialect NumOpens
---------- --------- -------- ---------- ------- --------
192.168.10.55 NVMe DESKTOP-K69SD7G\admin DESKTOP-K69SD7G\admin 3.1.1 5
PS C:\Windows\system32> Get-SmbMultichannelConnection
PS C:\Windows\system32> netstat.exe -xan | ? {$_ -match "445"}
PS C:\Windows\system32> netstat.exe -an | ? {$_ -match "445"}
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
TCP 192.168.10.53:58881 192.168.10.55:445 ESTABLISHED
TCP [::]:445 [::]:0 LISTENING
Коммутатор: Mellanox SN2100
PFC включен на коммутаторе, поэтому я отключил его для этих конкретных портов и включил глобальную паузу.
int eth 1/10-1/12 flowcontrol send on force
int eth 1/10-1/12 flowcontrol receive on force
int eth 1/10-1/12 dcb priority mode off force