Linux-Networking
板載乙太網與英特爾 NIC
我需要一些關於使用專用英特爾乙太網卡與簡單使用主機板集成乙太網的好處的建議。典型的案例如下:
- 每條消息的有效負載約為 100 KB,
- 每秒最多約 1000 條消息的頻率,
- 理想情況下,處理這些消息應該盡可能少地消耗 CPU 時間(CPU 將用於並行程序中的實時計算),
- 基於 Linux 的伺服器。
對於集成乙太網解決方案,我可以使用配備(集成)Intel I225V 或 Realtek RTL8125BG 的主流主機板(非伺服器級)。
對於帶有外部 NIC 的解決方案,我在考慮 Intel X550-T1。
那麼,哪種解決方案會更好?
如果專用卡更適合我的案例,應該優先使用哪個 PCI-express 埠?使用的埠是否應該盡可能靠近 CPU?
板載和專用 NIC 之間的延遲沒有區別。這兩個都使用 PCI-express。專用網卡可能會連接到 CPU 中的內部 PCI-e 控制器。板載集成網卡可以連接到晶片組集成控制器,而不是直接連接到 CPU。但是從 NIC 到記憶體的傳輸數據延遲的差異幾乎不存在。
如果您真的關心處理的性能和延遲,請檢查以下幾點:
- 網卡使用DMA將數據傳輸到主記憶體,所以使用頻率最高的記憶體
- 較新版本的 PCI-e 更好(速度更快 - 傳輸數據的時間更短)
- CPU 頻率比核心數更重要。
- 在 NUMA 系統中,數據應該在本地節點處理。
- 不要忘記禁用省電功能
- 使用帶有核心旁路的軟體,如英特爾 DPDK
- 閱讀有關 Smart-NIC 或基於 FPGA 的 DPU 以解除安裝處理