硬件选型:CPU、网卡、内存、SSD的低延迟配置

做量化交易系统,硬件选型这事儿,我踩过的坑真不少。很多人一上来就盯着CPU主频看,觉得越高越好。其实没那么简单。你想想看,一个交易系统的延迟瓶颈,往往不在CPU本身,而在数据从网卡到内存、再从内存到CPU这条路上。

我个人习惯把硬件选型分成四个核心部件来聊:CPU、网卡、内存、SSD。每个部件都有它的脾气,选对了,延迟能降一个数量级;选错了,代码写得再漂亮也白搭。

核心原则:低延迟硬件选型不是堆料,而是消除每一个微秒级的等待。说白了,就是让数据流动的路径最短、最直接。

CPU:主频不是唯一指标

CPU选型,我见过最典型的误区就是只看主频。主频确实重要,但还有两个关键指标:缓存大小核心架构

  • 主频:建议4.0GHz以上,越高越好。但要注意,Intel的Turbo Boost和AMD的Precision Boost在实际负载下能否稳定在高频。
  • L3缓存:越大越好。我做过测试,L3缓存从16MB提升到32MB,某些行情解析场景的延迟能降低15%。因为行情数据频繁访问的字段可以常驻缓存。
  • 核心架构:优先选Intel的P-core(性能核)或AMD的Zen 4/5。E-core(能效核)在低延迟场景下反而可能引入调度抖动。

我的经验:曾经在一个项目中,我们用了AMD EPYC处理器,核心数多、价格便宜,但实际跑行情处理时,跨CCD(Core Complex Die)访问的延迟比Intel高了不少。后来换成Intel Xeon W系列,延迟稳定多了。所以别光看跑分,要看实际工作负载下的表现。

还有一个容易被忽略的点:CPU的睿频响应时间。有些CPU从低功耗状态切换到高频状态需要几十微秒,这在交易场景里是致命的。我建议在BIOS里关闭所有C-State(除了C0),让CPU始终处于高频状态。

网卡:从10G到100G的抉择

网卡是交易系统的第一道关口。数据从网络进来,网卡负责把它送到内存。这里的关键指标是延迟吞吐量

网卡类型 典型延迟(硬件) 适用场景 我的建议
10G 传统网卡 ~5μs 非核心交易、回测系统 不推荐用于生产交易
25G Solarflare/Mellanox ~1-2μs 中频交易、做市商 性价比之选
100G Exablaze/Myricom ~0.5-1μs 高频交易、极速行情 预算充足就上
FPGA网卡(如Xilinx Alveo) <0.1μs 纳秒级交易 需要定制开发

我个人强烈建议:网卡必须支持硬件时间戳。没有硬件时间戳,你根本不知道行情数据是什么时候到达的,延迟分析就是一笔糊涂账。

避坑指南:我曾经在一个项目里用了某品牌的10G网卡,号称支持RSS(接收端缩放),但实际多队列负载严重不均。行情数据全挤在一个CPU核心上,其他核心闲着。后来换成Solarflare的网卡,配合它的硬件流分发功能,才把负载均衡搞定。

另外,网卡的PCIe带宽也要注意。100G网卡需要PCIe 3.0 x16或PCIe 4.0 x8,否则带宽会成为瓶颈。我见过有人把100G网卡插在PCIe 3.0 x4插槽上,结果实际吞吐量只有30G,白白浪费了硬件性能。

内存:延迟和带宽的平衡

内存选型,核心就两个参数:频率时序。频率决定了带宽,时序决定了延迟。

  • 频率:DDR5-5600以上是当前的主流。频率越高,内存带宽越大,对行情数据的批量处理越有利。
  • 时序:CL值越低越好。CL30以下的DDR5内存是低延迟场景的首选。CL40以上的内存,延迟会明显增加。
  • 通道数:建议用满所有内存通道。比如支持四通道的CPU,就插4根内存条。这样可以最大化内存带宽。

嗯,这里要注意:内存的Rank数量也会影响延迟。单Rank的内存延迟通常比双Rank低,但容量会减半。对于交易系统,我建议优先选单Rank的高频内存,容量够用就行。

我的经验:有一次我们为了省钱,用了DDR5-4800 CL40的内存。结果行情处理时,内存延迟成了瓶颈,CPU经常处于等待状态。后来换成DDR5-6000 CL30,同样的代码,延迟直接降了20%。这笔钱花得值。

还有一个细节:内存的ECC功能。交易系统对数据准确性要求极高,ECC内存可以纠正单比特错误。虽然ECC会引入一点点延迟(约1-2%),但相比数据出错导致的灾难性后果,这点代价完全可以接受。

SSD:NVMe是底线

SSD在交易系统里主要用来存历史行情、日志文件和回测数据。实时交易路径上,SSD不是关键部件,但它的性能会影响数据加载和日志写入的速度。

我的建议很简单:只用NVMe SSD,别碰SATA SSD。SATA SSD的延迟在几十微秒级别,而NVMe SSD的延迟可以做到个位数微秒。

SSD类型 典型延迟(4K随机读) 典型带宽 推荐场景
SATA SSD ~50-100μs ~500MB/s 不推荐
NVMe Gen3 ~10-20μs ~3GB/s 日志存储、回测数据
NVMe Gen4 ~5-10μs ~7GB/s 行情数据缓存
Intel Optane(已停产) ~1-5μs ~2GB/s 极速缓存(二手市场可淘)

我个人习惯:系统盘用NVMe Gen4,数据盘用NVMe Gen3。系统盘需要快速启动和加载操作系统,Gen4的带宽优势明显。数据盘存的是历史行情和日志,Gen3的延迟已经足够。

避坑指南:我曾经用过一块便宜的NVMe SSD,标称顺序读写很快,但4K随机写入的延迟很不稳定。日志写入时,偶尔会出现几百微秒的尖峰。后来换成三星的PM9A3企业级SSD,延迟曲线才变得平滑。所以,交易系统的SSD一定要选企业级,别用消费级。

硬件选型的整体框架

说了这么多,我画了一张图来总结硬件选型的核心逻辑。你看,数据从网卡进来,经过PCIe总线到内存,CPU从内存读取数据,处理完后可能写到SSD。每个环节的延迟都要控制好。

量化交易系统硬件选型核心逻辑 网卡 Solarflare/Exablaze 硬件时间戳 PCIe 内存 DDR5-6000 CL30 单Rank优先 内存总线 CPU Intel Xeon W 关闭C-State NVMe SSD NVMe Gen4 企业级 典型端到端延迟 网卡→CPU:~1-3μs CPU→内存:~50-100ns 关键指标 延迟:越低越好 抖动:越小越好

这张图里,我特意把延迟抖动标了出来。延迟是平均值,抖动是方差。很多系统延迟不高,但抖动大,时不时来一个尖峰,这对交易系统来说是致命的。你想想看,如果99%的订单都在1微秒内处理,但1%的订单要花100微秒,那这1%的订单可能就错过了行情。

总结一下我的选型清单

  • CPU:Intel Xeon W系列或AMD Ryzen Threadripper Pro,主频4.0GHz+,L3缓存32MB+,关闭C-State
  • 网卡:Solarflare SFN8522或Mellanox ConnectX-6,25G以上,支持硬件时间戳
  • 内存:DDR5-6000 CL30,单Rank,四通道,带ECC
  • SSD:三星PM9A3或Solidigm P5800X(Optane),NVMe Gen4,企业级

这套配置下来,一台交易服务器的硬件成本大概在5-10万人民币。对于做市商或高频交易团队来说,这笔投资通常几个月就能从延迟优化带来的收益中赚回来。

最后说一句:硬件选型没有银弹。同样的配置,在不同的交易策略和行情环境下,表现可能天差地别。我建议你拿到硬件后,先用真实的行情数据做延迟测试,看看瓶颈到底在哪。别光看厂商给的参数,那都是理想环境下的数据。

专注资料整理