硬件选型:CPU、内存、网卡、SSD在低延迟场景下的选择策略
做量化交易的朋友,尤其是搞高频的,都明白一个道理:硬件就是你的枪。枪不好,再好的枪法也白搭。今天咱们就聊聊,在微秒级交易链路里,CPU、内存、网卡、SSD到底该怎么选。
我入行那会儿,也踩过不少坑。记得有一次,为了省几千块钱,选了一款看似参数不错的消费级SSD。结果回测数据一跑,延迟抖动大得离谱,直接导致策略信号滞后。嗯,从那以后,我再也不敢在硬件上抠门了。
核心原则:低延迟场景下,硬件选型的唯一标准是「确定性」。我们不追求理论峰值,我们追求的是每一次操作的延迟都稳定在纳秒级。
CPU:主频不是唯一,缓存和架构才是关键
很多人选CPU,上来就问「主频多少」。其实,对于交易系统来说,单核性能远比多核重要。你想想看,行情数据是一条线进来的,你不可能让多个核去抢同一把锁。
我个人习惯,优先看这几个指标:
- L3缓存大小:越大越好。我建议至少30MB起步。为什么?因为行情数据、订单簿状态,如果能全部塞进L3缓存,那速度比去内存里拿快一个数量级。
- 核心架构:Intel的至强系列,尤其是带「S」后缀的(比如Xeon Platinum 8380S),专门为单线程优化过。AMD的EPYC虽然核心多,但跨CCD通信延迟高,不太适合微秒级场景。
- 睿频能力:别只看基础频率。要看全核睿频能稳定在多少。有些CPU标称5GHz,但跑几秒就降频了,这种就是坑。
避坑指南:我曾经试过用消费级的i9-13900K跑交易系统。性能确实猛,但一旦温度超过80度,它就开始降频。交易系统最怕的就是这种「不可预测的降频」。后来我换成了Xeon W系列,虽然主频低一点,但胜在稳定。
内存:频率、时序、通道,一个都不能少
内存这块,很多人只盯着容量看。其实在低延迟场景下,延迟比容量重要。你系统里跑的数据,可能就几百MB,但每次读写都要等几十个纳秒,那就不行。
我建议重点关注:
- DDR5 vs DDR4:目前来看,DDR5的延迟还是比DDR4高一些。如果你追求极致,DDR4-3200 CL14 或者 DDR4-3600 CL16 反而是更好的选择。DDR5的优势在带宽,但交易系统对带宽需求没那么大。
- 内存通道数:必须插满所有通道。比如CPU支持4通道,你就插4根。少插一根,带宽减半,延迟也会增加。
- Rank数量:单Rank的内存延迟最低。双Rank虽然容量大,但每次访问要多等一个时钟周期。
注意:千万别为了省钱买「服务器专用条」或者「拆机条」。这些内存的时序参数往往很乱,而且兼容性差。我见过有人因为用了拆机条,系统每隔几小时就蓝屏一次,排查了三天才发现是内存问题。
网卡:Solarflare还是Mellanox?这是个问题
网卡是交易系统的咽喉。数据从网线进来,到应用程序手里,中间经过的每一层都是延迟。
我个人经验,目前主流的选择就两个:
| 品牌 | 代表型号 | 延迟(硬件时间戳) | 适用场景 |
|---|---|---|---|
| Solarflare | SFN8522 / X2522 | ~5ns | 交易所直连、FPGA卸载 |
| Mellanox | ConnectX-6 Dx / ConnectX-7 | ~10ns | 通用低延迟、RoCE v2 |
Solarflare的优势在于它的硬件时间戳和TCP卸载引擎。说白了,就是把网卡处理数据包的工作从CPU手里抢过来,自己干。这样CPU就能专心跑策略逻辑。
Mellanox呢,生态更好,驱动更成熟。如果你要用RDMA或者RoCE,那Mellanox是首选。
我的建议:如果你做的是「纳秒级」的套利策略,直接上Solarflare + FPGA。如果是「微秒级」的做市策略,Mellanox ConnectX-6就够用了。别盲目追求最贵的,够用就好。
SSD:别只看顺序读写,要看4K随机和延迟一致性
很多人买SSD,只看顺序读写速度。什么7000MB/s、10000MB/s,看着很唬人。但交易系统里,你很少会连续读写大文件。更多时候,是在读小文件,比如配置文件、日志、历史行情快照。
这时候,4K随机读写性能和延迟一致性才是关键。
我推荐几个方向:
- 企业级SSD:比如Intel Optane P5800X、Samsung PM9A3。这些盘有断电保护、有磨损均衡,延迟抖动控制在微秒级。消费级的980 Pro,跑几分钟还行,跑几个小时就开始掉速。
- NVMe vs SATA:不用想,直接NVMe。SATA的延迟在100微秒级别,NVMe在10微秒级别。差了一个数量级。
- 容量选择:别买太大。交易系统不需要存海量数据。我一般用480GB或960GB的盘,够装系统和日志就行。容量越大,垃圾回收越频繁,延迟抖动越明显。
一个小技巧:把SSD的OP(Over-Provisioning)空间留大一点。比如你买1TB的盘,只分800GB给系统用,剩下200GB留作预留空间。这样垃圾回收的时候,不会影响前台IO。我习惯留20%的OP空间。
知识体系总览
下面这张图,是我自己总结的硬件选型决策树。你可以照着这个思路来选,基本不会出错。
你看,整个决策逻辑其实很清晰。核心就是一句话:为确定性买单,不为峰值性能买单。
最后说一句,硬件选型没有银弹。你最好先跑一下自己的策略,看看瓶颈到底在哪。是网络延迟高?还是CPU处理不过来?还是磁盘IO卡住了?对症下药,才能花最少的钱,办最大的事。