隨著高階網卡價格逐漸親民,許多企業與實驗室開始將 25GbE 甚至 100GbE 的網路卡導入儲存架構中。然而,插上高速網卡與跑滿速度之間,往往隔著一些底層設定需要解鎖,不論是 100 GbE 或 400GbE 等高階網路的部署,背後都有不少硬體與軟體眉角。
這次我們在測試環境中,將兩張伺服器等級的 100GbE 網卡 QXG-100G2SF-BCM(Broadcom BCM57508)與 QXG-100G2SF-E810(Intel E810)部署於 QNAP TS-h1277AFX ,以及 QNAP TS-855X 等 NAS 上,並測試與 PVE 伺服器、NVIDIA DGX Spark 間的連線,並搭配 QNAP QSW-M7308R-4X 交換器進行實測。

具備 PCIe Gen 4 x16 的 QNAP TS-h1277AFX 是順利的,但 QNAP TS-855X 這類機種雖然沒有提供 PCIe Gen 4 x16 的 PCIe 插槽,但它還是可以用的,PCIe Gen3 x4,當然是沒辦法體驗到全速的快感,反而撞上了一面 20 Gbps 的嘆息之牆,但它的理論值應不止於此,剛好可以來檢視我們在一般網路環境中,最佳化 TCP 傳輸用的一些基礎方式,以下是針對這種情況的一些說明。
100GbE 網卡直上 NAS!打破 20G 降速魔咒的網路底層調整紀錄
消失的頻寬與爆表的重傳率
在初始設定下,我們直接透過 Docker 容器執行 iperf3 進行多執行緒(-P 4)測速,傳回來的資料就毫無意外地低,傳輸速度卡在 20.3 Gbps,完全上不去。且重傳次數 (Retr) 在短短 10 秒內,封包重傳高達 33,857 次。 壅塞視窗(Congestion Window, cwnd) 則縮水至 100K~300K 徘徊。

高達三萬多次的重傳,這代表著網路中存在嚴重的掉包(Packet Loss)或緩衝區溢位。TCP 協定不斷判定網路壅塞而觸發退避機制,導致速度被強行壓制。面對這種狀況,盲目更換線材是沒用的,必須從底層設定著手。
不可忽視的 MTU 與 Flow Control、FEC
要駕馭 100GbE 的巨量封包,作業系統與交換器的預設值絕對是不夠的,因此需要進行一些底層調整。
首先是開啟巨型訊框 Jumbo Frames (MTU 9000),在預設的 MTU 1500 下,要跑滿 20Gbps 以上的頻寬,NAS 的 CPU 每秒必須處理超過 160 萬個小型封包。這會導致 CPU 中斷(Interrupts)瞬間滿載,來不及接收的封包只能直接丟棄。因此,我們透過 ip link set dev <介面> mtu 9000 將兩端主機與交換器的 MTU 同步放大,大幅降低了系統處理封包的運算負擔。
以下是下指令 sudo ip link set dev 網路卡名稱 mtu 9000,這樣就能被設定到 mtu 9000,不過這是測試時用的設定,你要讓這項設定長期保存,在 QNAP NAS 系統中要到使用者介面的「網路與虛擬交換器」設定選項中去針對網路卡進行 MTU 調整才行。

其次是強制啟用流量控制 (Tx/Rx Flow Control),在極高速的傳輸下,比較容易發生微爆發 (Microburst),導致接收端網卡或交換器的 Buffer 瞬間被打滿。下指令 sudo ethtool -A 網路卡名稱 rx on tx on,開啟雙向 Flow Control 後,設備在來不及吞吐時會發送 Pause 幀(暫停訊號)給對方,用等一下取代直接丟包,這是消除大量 Retr 的關鍵。

還有一個關鍵是 FEC(前向錯誤更正)設定, 從CyberQ 測試的畫面中,下指令 ethtool –show-fec 網路卡名稱,可以看到這款網路卡使用的 FEC 設定是 RS 模式,Reed-Solomon (RS) FEC 是一種強力的糾錯方式,常被用於高速傳輸中,例如 100GE 或 400GE 網路,我們在交換器中也能夠予以定自動 (Auto),交換器會根據連接埠的能力自動去調整,適合一般情況。
交換器的神級助攻有ASIC 緩衝的威力
從改善過程,也可以留意到透過交換器連線,竟然比 DAC 線直連還要快且穩?

當我們把兩台 NAS 的 100GbE 連接埠透過 DAC 直接對打時,需要面對兩張網卡硬碰硬的頻率同步,測試成績超越前面的 20Gb/s ,但是將設備全數接上 QSW-M7308R-4X 100GbE 交換器後,速度更平穩,測試資料也跑得比之前更快,這是得益於硬體卸載與 TCP 最佳化,且重傳率完美歸零。

交換器內部的 ASIC 晶片與強大的緩衝記憶體(Buffer)是不錯的輔助,它扮演了極佳的避震器,完美吸收了兩端微爆發的流量,將不平穩的資料流理順後再送出,讓 TCP 擁塞視窗得以增加,遠高於前面測試大量塞住時的數字。
物理天花板是PCIe 通道決定 NAS 、工作站與伺服器的極限
以這次的中小型 NAS 設備 QNAP TS-855X 來說,在所有的調整都設定好、網路環境達到 0 掉包的完美狀態下,NAS 測出的極限速度穩定落在 27.9 ~ 29.5 Gbps,這並不是網路卡的問題,而是撞到了該設備的主機板實體極限 PCIe Gen3 x4。

PCIe Gen3 x4 的理論頻寬只有約為 32 Gbps,扣除掉底層的編碼與協定耗損,實際可用的 Payload 傳輸極限正是落在 28 Gbps 左右,所以在升級網路卡之前,請務必先翻開主機板說明書,確認你設備 PCIe 擴充槽的規格是否撐得起這張網卡的胃口,這不論是對 NAS 、工作站或伺服器來說都是如此。
不但如此,也要考量設備的處理器會不會太慢,不然沒辦法餵飽這樣較大的頻寬和來不及處理,因此設備該有的規格還是要往上疊。
以 QNAP NAS 來說,要能夠如本文中使用 100GbE 網路卡能夠跑順,除了我們測試的 QNAP TS-h1277AFX 之外,要真正支援 100GbE(100 Gigabit Ethernet)網路卡,NAS 不但要有 PCIe 擴充槽且需要提供足夠的頻寬(PCIe Gen4 ×16 以上較理想),主要會集中在旗艦級全快閃與企業級機種,包括 TS‑h2490FU(All‑Flash NVMe NAS)等這類適合大流量、虛擬化與資料中心級工作負載的機型。以及 TS‑h1290FX 等這些等級類似的 QuTS hero 全快閃 NAS。
再來是大型全快閃與資料中心架構用的 NAS,同樣也有高擴充彈性,如 TDS‑h2489FU R2(雙 Xeon 伺服器級機種),它還擁有 4 個 PCIe Gen4 擴充槽,可安裝更多張 100GbE 網卡滿足 PB 級儲存系統需求。
高速網路部署是一門系統工程
透過這次 Intel 與 Broadcom 網卡的測試,也驗證了部署 10G 以上到 100G 網路需要的,除了在在實體層有適當的線材規格,如 QSFP28 支援 NRZ 編碼的 100G,要跑 200GbE 要更上一層的線材外,PCIe 匯流排版本要夠新且通道數夠多才行,這決定了效能的絕對天花板。
而資料鏈結層的部分呢, MTU 9000 與 Flow Control 是高速網路的基本配備設定選項,缺一不可。線材裝好後,也要檢查一下 FEC 設定是不是 RS 模式等等。

CyberQ 認為,100GbE 的網路架構實際運作並不是 Plug and Play,需要掌握底層邏輯,才能真正解放硬體的潛能。










