我有一台QNAP TS-433,運行QTS 5.2.10,搭配內建的 2.5 GbE 介面。
系統詳情:
型號:TS-X33
QTS:5.2.10
核心:5.10.60-qnap
架構:aarch64
網卡驅動程式:r8125
驅動版本:9.007.01-NAPI
問題是 2.5 GbE 介面無法提供穩定的 2.5 GbE 效能,並且出現大量 TCP 重傳/接收端封包遺失。
我最初注意到這個問題,是因為從外接 USB 硬碟(連接於 QNAP)透過 SMB 播放影片時嚴重卡頓。
外接硬碟本身不是瓶頸。在 QNAP 上於該硬碟本地複製的速度約為 70–100 MB/s,但 SMB 從 Mac 讀取時一開始只有:
9 MB/s
在 Mac 停用部分 Cisco Secure Client 元件並重開機後,SMB 效能提升到大約:
81 MB/s
所以這是另一個 Mac/Cisco 相關的 SMB 問題,但進一步測試發現 QNAP 端還有獨立的網路問題。
網路環境由 Mac、Mac mini 和 QNAP 連接到同一台 2.5 GbE switch(交換器)。
Mac ↔ Mac mini 效能幾乎完美:
~2.35 Gbit/s
範例:
傳輸 2.74 GBytes
2.35 Gbit/s
111 次重傳
反方向同樣穩定:
2.35 Gbit/s
43 次重傳
四條平行流時:
Mac -> Mac mini:
2.35 Gbit/s
363 次重傳
Mac mini -> Mac:
2.35 Gbit/s
92 次重傳
但 QNAP 表現完全不同。
典型 Mac → QNAP 測試:
2.12 Gbit/s
3963 次重傳
另一次測試:
2.06 Gbit/s
4350 次重傳
又一次:
2.11 Gbit/s
2968 次重傳
反向更糟且不穩定。
QNAP → Mac 範例:
1.34 Gbit/s
測試期間串流速度約
0.95 Gbit/s - 1.86 Gbit/s
另一次反向測試:
1.21 Gbit/s
412 次重傳
四條平行流並未解決問題。
Mac → QNAP 使用 -P 4:
1.90 Gbit/s
17679 次重傳
QNAP → Mac 使用 -R -P 4:
1.19 Gbit/s
1549 次重傳
特別值得注意的是,在同一台 Mac 和同一台 switch 上,Mac mini 可穩定達到 2.35 Gbit/s 且幾乎沒有封包遺失。
我也用以下指令檢查 QNAP 網卡統計:
ethtool -S eth0
單次 iperf 測試期間,計數器從:
rx_missed: 24545
rx_mac_error: 117
rx_mac_missed: 720535
變為:
rx_missed: 27430
rx_mac_error: 123
rx_mac_missed: 720628
所以這次測試期間:
rx_missed: +2885
rx_mac_error: +6
rx_mac_missed: +93
同時 iperf 測試回報:
2968 次重傳
rx_missed 和 TCP 重傳數幾乎規模一致,非常明顯是 QNAP 網卡/驅動程式接收端封包遺失。
網卡回報:
速度:2500Mb/s
雙工:全雙工
自動協商:開啟
網路連線:有
我已測試不同的網路線和 switch port,結果都一樣。
EEE 也已停用:
EEE 狀態:停用
Tx LPI:停用
流量控制配置:
RX:開啟
TX:開啟
RX 協商:停用
TX 協商:停用
驅動功能也很值得注意:
receive-hashing:停用[固定]
scatter-gather:停用
tcp-segmentation-offload:停用
generic-segmentation-offload:停用
generic-receive-offload:開啟
介面僅有一個 RX queue 和一個 TX queue:
/sys/class/net/eth0/queues/
rx-0
tx-0
也只有一個網卡中斷:
eth0-0
且無硬體 receive hashing /RSS。
我也測試了 IRQ affinity 和 RPS。
更改 IRQ affinity 對效能並未有實質改善:
僅 CPU3:
~2.00 Gbit/s
4011 次重傳
CPU1-3:
~2.05 Gbit/s
5006 次重傳
RPS 預設是停用的:
rps_cpus = 0
xps_cpus = 0
我啟用全四核心 RPS:
echo f > /sys/class/net/eth0/queues/rx-0/rps_cpus
但同樣無法解決問題。
也測試網卡於 1 GbE。
在 1 GbE 情況下大幅改善:
Mac -> QNAP:
~939 Mbit/s
682 次重傳
QNAP -> Mac:
~854-914 Mbit/s
~500-600 次重傳
所以這個問題特別在 2.5 GbE 速度下嚴重。
到目前為止我已排除:
- 網路線
- switch port
- switch 本身
- Mac 2.5 GbE 介面
- EEE
- 一般 IRQ affinity 問題
- RPS 配置
- 外接硬碟效能
- SMB 作為底層網路原因
唯一共通因素是 RTL8125 網卡搭配 QNAP r8125 9.007.01-NAPI 驅動程式。
根據本討論串,也有更新版 r8125 驅動於 TS-433 測試。
有人收到 QNAP 官方韌體包含較新 RTL8125 驅動的嗎?
特別想知道 QNAP 是否有規劃未來 QTS 釋出會將 TS-433 升級至:
r8125 9.007.01-NAPI
driver 的新版。
根據我測量,這看起來不是簡單的效能限制:網卡確實在高負載下累積 rx_missed 計數,導致 TCP 封包遺失和數千次重傳。