硬件选型:CPU、网卡、内存与PCIe通道优化
做市系统的延迟优化,说白了就是一场与物理定律的赛跑。我做了这么多年低延迟系统,最深的体会是:软件优化能帮你从毫秒级跑到微秒级,但想再往下走,就得看硬件选型了。今天咱们聊聊四个关键硬件:CPU、网卡、内存、PCIe通道。
CPU:高频与大缓存,一个都不能少
CPU是做市系统的大脑。我个人习惯,选CPU时只看两个指标:主频和缓存大小。
主频决定了单线程的执行速度。做市策略大多是单线程的,所以核心数多没用,主频高才是王道。我建议选5GHz以上的型号,比如Intel的i9-13900KS或AMD的Ryzen 9 7950X。嗯,这里要注意:超频虽然能再提一点,但稳定性会下降。做市系统最怕的就是CPU降频或死机,所以别为了那0.1GHz去冒险。
缓存呢?说白了就是CPU的「临时记忆」。L1、L2、L3缓存越大,CPU从内存读数据的次数就越少。我在项目中遇到过,同样的策略,换了个L3缓存大一倍的CPU,延迟直接降了30%。为什么会这样?因为做市系统频繁访问订单簿和行情数据,这些数据如果能塞进缓存,速度就快得多。
避坑指南:我曾经选过一款主频很高但缓存很小的CPU,结果行情波动大时,缓存频繁失效,延迟直接飙升。后来我学乖了,选CPU时先看缓存大小,再看主频。
网卡:Solarflare vs Mellanox
网卡是做市系统的「耳朵」和「嘴巴」。数据从交易所到你的系统,第一站就是网卡。延迟优化到这里,就不能用普通网卡了。
Solarflare 和 Mellanox 是两大主流。我个人更倾向Solarflare,因为它的 OpenOnload 技术能绕过内核协议栈,直接把数据从网卡送到用户空间。你想想看,传统网卡走一遍内核,延迟至少多10微秒。而Solarflare能做到1微秒以内。
Mellanox呢?它的优势在于 RDMA(远程直接内存访问)。如果你的做市系统是分布式的,多个节点之间需要高频通信,Mellanox的RDMA能让你几乎零拷贝地传输数据。我有个朋友做跨交易所套利,用了Mellanox后,节点间延迟从5微秒降到了0.5微秒。
| 特性 | Solarflare | Mellanox |
|---|---|---|
| 核心技术 | OpenOnload(内核旁路) | RDMA(远程直接内存访问) |
| 典型延迟 | <1微秒 | <0.5微秒(RDMA模式) |
| 适用场景 | 单机低延迟 | 分布式低延迟 |
| 我的推荐 | 做市策略主节点 | 跨节点通信 |
小技巧:选网卡时,别忘了看它的 PCIe接口。Solarflare和Mellanox的高端型号都支持PCIe 4.0 x16,带宽足够。但如果你主板只支持PCIe 3.0,那网卡性能会打折扣。
内存:DDR5 vs HBM
内存这块,争议挺大。DDR5是主流,HBM是高端货。我来说说我的看法。
DDR5 的优势是容量大、价格低。做市系统如果只是跑策略,DDR5完全够用。它的延迟大概在10-20纳秒,带宽能到50GB/s以上。嗯,这里要注意:DDR5的延迟其实比DDR4高一点,但带宽翻倍了。对于做市系统来说,带宽更重要,因为你要频繁读写订单簿数据。
HBM(高带宽内存)呢?它直接封装在CPU或GPU旁边,延迟能降到5纳秒以内,带宽能到1TB/s以上。我曾在项目中用过HBM,效果确实惊人。但问题是,HBM容量小(通常只有几GB),而且贵得离谱。说白了,HBM适合那些对延迟极度敏感、数据量又不大的场景,比如高频行情解析。
警告:别盲目上HBM。如果你的做市策略需要加载大量历史数据或机器学习模型,HBM那点容量根本不够用。我见过有人花大价钱买了HBM,结果数据放不下,还得用DDR5做交换,延迟反而更差了。
PCIe通道优化:被忽视的瓶颈
很多人只关注CPU和网卡,却忘了PCIe通道。你想想看,网卡、GPU、NVMe硬盘都挂在PCIe总线上。如果通道不够用,数据就得排队,延迟自然就上去了。
我建议,做市系统的主机至少要有 PCIe 4.0 x16 的通道数。具体来说:
- 网卡:独占一条PCIe 4.0 x16,别跟其他设备共享。
- GPU(如果有):用PCIe 4.0 x8就够了,别抢网卡的带宽。
- NVMe硬盘:用PCIe 3.0 x4,别占用高速通道。
我在项目中遇到过,网卡和GPU共享PCIe通道,结果行情波动大时,网卡延迟从1微秒飙到了10微秒。后来我把网卡换到独立的PCIe插槽,问题就解决了。
核心原则:PCIe通道的分配,要按延迟敏感度排序。网卡 > GPU > NVMe硬盘。把最敏感的硬件放在最快的通道上。
知识体系总览
下面这张图,是我对本章内容的总结。你可以看到,硬件选型不是孤立的,它们通过PCIe总线连接在一起,共同决定了系统的延迟表现。
好了,硬件选型这块就聊到这儿。记住一句话:没有最好的硬件,只有最适合你策略的硬件。下一章咱们会深入软件层面的优化,到时候再聊。