3. 硬件选型与配置:CPU、内存、网卡、SSD的选择,以及BIOS调优

做期权做市,说白了就是跟时间赛跑。你想想看,行情数据从交易所飞到你的机器,你的策略算完,再发单回去,这一圈下来,别人可能已经成交了三笔。硬件选型,就是这场赛跑的起跑线。选错了,后面再怎么优化代码,天花板就在那儿。

我个人习惯,把硬件选型分成两个层面:「选什么」「怎么配」。选什么决定了你的上限,怎么配决定了你能不能摸到这个上限。今天我们就来聊聊这四样核心硬件:CPU、内存、网卡、SSD,以及那个经常被忽略的BIOS调优。

期权做市系统硬件选型与配置 硬件选型核心 CPU 高频 > 多核 关闭超线程 内存 低延迟 > 大容量 Rank 1:1 配置 网卡 Solarflare / Mellanox 内核旁路 SSD NVMe > SATA Optane 持久内存 BIOS 调优:关闭节能、锁定频率、优化内存时序

CPU:别被核心数忽悠了

很多刚入行的朋友问我,是不是核心越多越好?我通常会反问一句:你的策略能并行到128个线程吗?做市策略的核心逻辑,说白了就是一条线:行情进来 -> 计算 Greeks -> 更新报价 -> 发单。这条线是串行的,你给它32个核,它也只用得上一个。

所以,对于做市系统的主线程,单核性能才是王道。我个人习惯选 Intel 的 Xeon 金牌或者 AMD 的 EPYC 系列,但一定要挑基础频率高的型号。比如 Xeon 的金牌 6xxx 系列,基础频率能到 3.5GHz 以上,Turbo 能到 4.0GHz 以上,这就很理想。

核心选型原则:

  • 高频优先:基础频率 > 3.0GHz,Turbo 频率 > 4.0GHz
  • 核心数够用就好:8-16 物理核心足够,多了反而增加 NUMA 延迟
  • 关闭超线程:超线程对低延迟场景是灾难,它会让一个物理核假装成两个逻辑核,但缓存和执行单元是共享的,一旦冲突,延迟直接翻倍

我记得有一次帮一个团队调优,他们用的是一颗 28 核的 Xeon,但做市延迟就是下不去。我一看,超线程开着,而且策略线程被调度到了同一个物理核的两个逻辑核上。关了超线程,再绑核,延迟直接降了 30%。嗯,这就是典型的「硬件配置没跟上软件设计」。

内存:容量是其次,延迟才是命

做市系统的内存需求其实不大,行情数据、订单簿、持仓,撑死了几十个 GB。但内存延迟,直接决定了你的策略能不能在微秒级响应。

我建议选 DDR5 或 DDR4 3200MHz 以上 的内存条,时序(CL值)越低越好。CL14 的条子比 CL16 的贵不少,但绝对值。另外,内存通道数要配满,比如 CPU 支持 8 通道,你就插 8 根,别省那几根条子的钱。通道数少了,内存带宽和延迟都会受影响。

避坑指南:

我曾经遇到过一个问题:服务器跑着跑着,延迟突然抖动一下。查了半天,发现是内存的 Rank 配置不对。主板上有两个内存插槽通道,每个通道插一根 Rank 1 的条子,延迟最低。如果插了 Rank 2 的条子,或者混插,内存控制器要多花一个时钟周期去寻址。所以,尽量选单 Rank 的内存条,并且每个通道只插一根

网卡:你的数据通道

网卡是系统里最容易被低估的硬件。很多人觉得,千兆网卡够用了,行情数据才多少带宽?但问题是,延迟不是带宽决定的。普通网卡的数据包从网卡到应用,要经过内核协议栈,这一趟下来,几十微秒就没了。对于做市系统,这几十微秒就是生与死的距离。

我个人强烈推荐 Solarflare 或 Mellanox 的网卡,支持内核旁路(Kernel Bypass)技术。说白了,就是让应用直接跟网卡硬件通信,跳过操作系统内核。配合 OpenOnload 或 DPDK,延迟能从几十微秒降到几微秒。

网卡选型清单:

  • Solarflare SFN8522:支持 OpenOnload,延迟极低,做市圈的老牌选择
  • Mellanox ConnectX-5/6:支持 RoCE v2,延迟也很优秀,而且生态更开放
  • Intel E810:支持 DPDK,性价比不错,但延迟比前两者略高

你想想看,行情数据从交易所到你的网卡,只花了 1 微秒,结果在操作系统里排队等了 20 微秒,这多冤啊。所以,网卡一定要配内核旁路。

SSD:别让日志拖后腿

做市系统对 SSD 的需求,主要是日志和回放。行情数据、订单日志、系统日志,都需要快速写入。如果 SSD 的写入延迟太高,日志线程就会卡住,进而影响主线程。

我建议选 NVMe 协议的 SSD,比如 Samsung PM9A3 或 Intel P5800X。NVMe 直接走 PCIe 通道,延迟比 SATA SSD 低一个数量级。另外,Intel Optane 持久内存 也是一个选择,它的延迟接近内存,但容量比内存大,价格比内存便宜。适合做热数据的持久化。

注意:

不要用消费级的 SSD(比如三星 980 Pro)来做生产环境的日志盘。消费级 SSD 的写入寿命有限,而且在高并发写入时,延迟会剧烈抖动。我见过一个团队,因为用了消费级 SSD,日志写入偶尔卡顿,导致行情数据丢失,最后复盘时发现少了几笔关键报价。嗯,这个教训挺贵的。

BIOS 调优:把硬件的潜力榨出来

硬件选好了,装上去,默认的 BIOS 设置是给通用服务器用的,不是给低延迟交易用的。你需要进 BIOS,手动关掉一堆「省电」和「自动调节」的功能。

我个人习惯的 BIOS 调优清单如下:

BIOS 选项 推荐设置 说明
Intel Turbo Boost Disable Turbo 虽然能提频,但频率切换有延迟,做市系统需要稳定频率
C-States Disable C-States 是 CPU 的省电模式,进入和退出都有延迟,必须关掉
Hyper-Threading Disable 前面说过了,超线程对低延迟是灾难
Power Performance Tuning OS Controlled 让操作系统接管电源管理,配合 cpufreq 设置为 performance 模式
Memory Frequency Max Supported 锁定到最高频率,不要用 Auto
NUMA Disable (如果可能) 关闭 NUMA 可以避免跨节点访问内存的延迟,但有些主板不支持关闭

一个小技巧:

调完 BIOS 后,进系统用 cpufreq-infoturbostat 确认一下 CPU 频率是否稳定。我习惯写一个脚本,每隔 1 秒记录一次 CPU 频率,跑个 10 分钟,看看有没有波动。如果有波动,说明 BIOS 里还有省电功能没关干净。

嗯,说到这里,硬件选型和配置这块基本就讲完了。你可能会觉得,这些细节是不是太琐碎了?但做市系统就是这样,每一个微秒的优化,都是从这些「琐碎」里抠出来的。硬件选对了,配置调好了,你的策略才能在一个稳定的、低延迟的底座上跑起来。

最后,送大家一句话:别让硬件成为你策略的瓶颈。选硬件的时候,多花点心思,后面调优的时候,你会感谢自己的。


公众号:蓝海资料掘金营,微信deep3321