硬件选型: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 单核性能 > 多核 L3缓存 ≥ 30MB 全核睿频稳定不降频 内存 DDR4-3200 CL14 优先 插满所有内存通道 单Rank > 双Rank 网卡 Solarflare 或 Mellanox 硬件时间戳 + TCP卸载 FPGA卸载(可选) SSD 企业级NVMe > 消费级 预留20% OP空间

你看,整个决策逻辑其实很清晰。核心就是一句话:为确定性买单,不为峰值性能买单

最后说一句,硬件选型没有银弹。你最好先跑一下自己的策略,看看瓶颈到底在哪。是网络延迟高?还是CPU处理不过来?还是磁盘IO卡住了?对症下药,才能花最少的钱,办最大的事。