第二章:网络硬件基础
做低延迟交易系统,硬件选型是地基。地基没打好,上层软件优化得再好也白搭。今天咱们聊聊网卡、交换机、线缆这些硬家伙,还有硬件加速技术到底是怎么回事。
2.1 网卡(NIC)选型
网卡是交易系统的第一道关卡。我个人习惯把网卡分成三类:通用网卡、智能网卡、FPGA网卡。
| 类型 | 延迟 | 适用场景 | 代表产品 |
|---|---|---|---|
| 通用网卡 | 5-10μs | 普通行情接收 | Intel X710 |
| 智能网卡 | 1-3μs | 高频交易 | Mellanox ConnectX-6 |
| FPGA网卡 | <1μs | 极速交易 | Solarflare X2522 |
选网卡时,我建议重点关注三个指标:
- 线速转发:别被厂商的"理论带宽"忽悠了。实际能跑满40Gbps的网卡,市面上真不多。
- 中断延迟:有些网卡支持中断合并,但交易场景下要关掉。我踩过这个坑,一次合并多了几十微秒,订单直接废了。
- 硬件时间戳:这个必须有。没有硬件时间戳,你根本不知道数据到底什么时候到的。
核心观点:交易网卡选型,延迟比带宽重要。10Gbps够用就别上40Gbps,因为高速率往往意味着更高的处理延迟。
2.2 交换机选型
交换机是网络的中枢神经。做交易系统,我一般只看两种:
- ToR(Top of Rack)交换机:机柜顶部,连接服务器
- Spine交换机:核心层,连接多个ToR
选交换机,说白了就是看三个参数:
- 端口到端口延迟:越低越好。我见过标称300ns的交换机,实际测出来500ns+。所以一定要实测。
- 缓冲区大小:交易场景下,缓冲区越小越好。缓冲区大了反而增加延迟。
- PTP支持:精确时间协议。没有这个,多台机器的时间同步就是扯淡。
避坑指南:我曾经遇到过一台交换机,配置了巨型帧后延迟暴增。后来发现是硬件转发引擎对巨型帧处理有bug。所以,别盲目开巨型帧,先测再说。
2.3 光纤与铜缆的选择
线缆这东西,看着简单,其实门道不少。
铜缆(DAC):
- 便宜,一根线搞定
- 适合短距离(3米以内)
- 延迟低,但信号衰减快
光纤:
- 贵,但传输距离远
- 抗干扰能力强
- 延迟比铜缆略高(光电转换那一下)
我个人习惯:机柜内部用铜缆,机柜之间用光纤。别问我为什么,问就是经验。铜缆在短距离下延迟确实比光纤低那么一丢丢,但超过5米就别想了。
注意:光纤的弯曲半径有要求。我曾经见过有人把光纤折成90度,结果光功率直接掉到-20dBm,信号全丢了。
2.4 硬件加速技术概述
硬件加速,说白了就是把软件干的活交给硬件干。交易场景下,常见的硬件加速技术有:
- RDMA:远程直接内存访问。数据从网卡直接进内存,绕过CPU。延迟能降一个数量级。
- DPDK:数据平面开发套件。绕过内核协议栈,用户态直接操作网卡。我刚开始用DPDK时,觉得这玩意儿太反人类了,但性能确实香。
- FPGA卸载:把行情解析、订单校验这些逻辑写到FPGA里。延迟能压到纳秒级。
嗯,这里要注意:硬件加速不是万能的。RDMA虽然快,但配置复杂。DPDK虽然性能好,但需要独占CPU核心。选哪种,得看你的业务场景。
我的经验:做交易系统,别一上来就上FPGA。先用DPDK把软件优化到极致,再考虑硬件加速。很多团队连DPDK都没用好,就急着上FPGA,结果钱花了,延迟没降下来。
2.5 知识体系总览
下面这张图,是我自己总结的网络硬件选型决策流程。你想想看,从业务需求出发,一步步往下走,最终落到具体的硬件选型上。
这张图的核心逻辑很简单:先搞清楚你的业务到底需要多低的延迟,然后反向推导出硬件选型。别盲目追求极致,够用就好。
最后说一句:硬件选型没有银弹。我见过用FPGA网卡但软件写得一塌糊涂的团队,也见过用通用网卡但优化到极致的高手。硬件是基础,但最终拼的还是系统整体设计能力。
公众号:蓝海资料掘金营,微信deep3321