本帖最後由 inori 於 2023-9-7 11:09 編輯
你沒看錯亦沒寫錯, 不是100Mbps, 也不是10Gbps, 是100Gbps
其實差不多19年開始已經有人在玩100Gbps洋垃圾
在ebay找到兩張挺化算的買來試試看
賣家是在以色列發貨
兩張咭都是Made in India
還有就是要買一條30M QSFP28的AOC 主動式光纖線
因為比5M更長的話就沒法使用DAC
我是買原裝Mellanox的, 代用的有兼容性的問題存在免得中伏
還有這線材有是分ETH版跟IB版, 我是買IB版的能兼容ETH, 反之不行
QSFP28插頭比SFP+粗差不多一倍
眾所周知Server grade hardware上的被動Heatsink是絕對不合適使用在家居環境
雖然加小風扇就應該可以解決問題, 但這會變成多佔了一個PCIE槽
而且作為一個身患強迫症末期的病人當然這裡要魔改一下
買了兩塊尺寸比較大的紫銅Heatsink
切割鑽孔修剪打磨拋光足足用了一天的時間
攻牙M2.5用來上風扇螺絲可以方便風扇安裝拆卸清潔
大成告成
且慢……還要拉線……將家具搬開把光纖線放進線槽又用了半天
終於可以上機測試
100G Switch最便宜的也要5-6k左右還不確定兼容性, 唯有先玩直連吧
上機後Windows直接有上古driver已自動安裝
當然要update一下driver跟firmware
Nvidia(2020收購了Mellanox)將firmware update tool, firmware 跟 driver分別放了在三個地方
https://network.nvidia.com/produ ... are/firmware-tools/
https://network.nvidia.com/support/firmware/connectx5ib/
https://network.nvidia.com/produ ... et/windows/winof-2/
安裝新driver後就能夠在Information的tab看到frimware version跟port type, default是跑IB的所以就算是直連也沒有Link Speed
因為其實它應該係叫作IB咭(InfiniBand)而不是Ethernet咭,
不過在沒有Mellanox Switch的情況下基本上是沒有辦法設定IB
所以現在唯有轉跑ETH mode
先把Frimware update
裝好firmware update tool後只要將frimware file放在C:\底下
然後command prompt退回去C:\執行這個commnad就可以自動detect有沒有更新
找到便可以執行這句來更新- mlxfwmanager -u -d [PCI Device Name] -i [FW File Name]
複製代碼 成功update frimware後就restart電腦
然後就是把port type由IB改為ETH
首先執行這句來找device name(其實上面mlxfwmanager也有顯示)之後執行這句查看目前的link type是哪個屬性- mlxconfig -d [PCI Device Name] -q
複製代碼
可以看目前是在跑IB
由IB改為ETH執行這句- mlxconfig -d [PCI Device Name] set LINK_TYPE_P1=2
複製代碼
Restart後就已經可以在Link Speed看到成功直連100Gbps
先來一個簡單的file copy測試
(存取一個在gen3 NVMe SSD上的檔案)
峰值大約在30Gbps左右~=3.4GB/s, 輕鬆打破Gen3 SSD的極限
使用Mellanox自帶的工具nd_send_bw來測試一下極限
峰值在98.04Gbps, 算是收貨吧
下一步就是要建立RDMA
RDMA簡單來說就是令Remote的主機可以繞過Server的OS跟CPU,
直接存取記憶體中的資料, 從而減少使用CPU資源
這個年頭NVMe SSD的速度gen5單支已經去到12GB/s以上
每次存取Server上的資料都要經過CPU實在是浪費了CPU的處理能力跟SSD的速度
從taskmanager可以看到NIC在跑的時間都佔用了CPU資源
Windows Server 2022之間的通信已自動在跑RMDA的如果網咭支持的話
可惜M$沒有下放這個功能到家用的Windows
所以只能使唯一有RDMA功能的Windows Pro workstation來跟Windows server通信
但這個組合也只能夠單向 ,
意思就是由workstation方面發出的指令才能啟動RDMA,
例如由workstation到Server上存/取檔案,
相反如果由Server方到workstation上存/取檔案則不能啟動RDMA
先首要檢查自己的NIC是否support RDMA
看到RDMA Capable是True就沒有問題- Get-SmbClientNetworkInterface
複製代碼
打開Powershell執行下面的command
想知道command的詳細用途可以自行google- Install-WindowsFeature -Name "Data-Center-Bridging"
- Remove-NetQosPolicy -Confirm:$False
- Remove-NetQosTrafficClass -Confirm:$False
- Disable-NetQosFlowControl -Priority 0,1,2,3,4,5,6,7
- Set-NetQosDcbxSetting -InterfaceAlias [NIC Name] –Willing $false -Confirm:$False
- New-NetQosPolicy "SMBDirect" -NetDirectPortMatchCondition 445 -PriorityValue8021Action 3
- New-NetQosPolicy "Cluster" -Cluster -PriorityValue8021Action 7
- New-NetQosPolicy "DEFAULT" -Default -PriorityValue8021Action 0
- Enable-NetQosFlowControl -Priority 3,7
- New-NetQosTrafficClass "SMB" -Priority 3 -BandwidthPercentage 98 -Algorithm ETS
- New-NetQosTrafficClass "Cluster" -Priority 7 -BandwidthPercentage 1 -Algorithm ETS
- Set-NetAdapterAdvancedProperty -Name [NIC Name] -RegistryKeyword "*FlowControl" -RegistryValue 0
- Get-NetAdapterQos -Name [NIC Name] | Enable-NetAdapterQos
- Get-NetAdapterRDMA -Name [NIC Name] | Enable-NetAdapterRDMA
- Set-NetOffloadGlobalSetting -NetworkDirectAcrossIPSubnets Allowed
- Get-NetAdapterRdma [NIC Name]
複製代碼 如成功啟動RDMA的話會如下圖最後所示
以上就是windows設置RDMA的方法, 其他的OS例如linux, turenas等設置RDMA貌似更簡單
由於現在所有通訊已經by pass了OS跟CPU,所以沒法監測
再測試一次就可以看到taskmanager中的NIC就算在跑都沒有流量而且CPU使用率也沒有上升
而這次測試也發現看來SMB的Single thread seq極限是4.6GB/s(40Gbps)左右, 跟100Gbps還有很遠的距離
其實還有一個方法可以監測到NIC的流量
就是把RDMA的Inbound和Outbound加到Performance monitor裡
不過這界面比較難看
最後來一個極限測試
這是Server上Ramdisk跑CDM的速度
然後透過Workstation用SMB direct連接Server上的Ramdisk跑CDM
12159MB/s~=99.7Gbps
100Gbps NIC來說暫時還可以跑到Gen5 SSD的極限
不過有一點要注意的就是ConnectX-5系列還是使用PCI-E 3.0
要跑全速100Gbps的話就必需插在x16槽,
目前HEDT只有AMD在更新,
消費級來說找一塊能跑兩條真x16(顯卡+100G NIC)的主板看以mission impossible
要不就課金上ConnectX-5Ex/6/7 PCI-E 4.0那麼使用x8就可以跑100Gbps
正在考慮要不要入手CRS504/CRS518 |