2. 硬件与网络规划:服务器选型建议、网络拓扑设计、延迟优化基础、机房环境要求
做量化交易,硬件和网络是地基。地基不稳,策略再好也白搭。我见过太多团队,策略回测跑得飞起,一上实盘就各种卡顿、延迟爆炸。说白了,就是硬件规划没跟上。
这一章,我把自己这些年踩过的坑、积累的经验,一次性倒出来。从服务器选型到网络拓扑,再到延迟优化和机房环境,咱们一步步捋清楚。
2.1 服务器选型建议
选服务器,核心就三个字:稳、快、准。稳是稳定,快是低延迟,准是数据不丢包。
2.1.1 CPU:核心频率比核心数更重要
很多人一上来就追求几十核的服务器。其实在量化交易里,单核性能才是王道。为什么?因为交易信号的计算,很多是串行的,没法并行。你想想看,一个订单来了,你得先解析、再计算、最后发单,这一连串动作,核心再多也帮不上忙。
我个人习惯,选CPU时优先看主频和睿频。比如Intel的Xeon W系列,或者AMD的Ryzen Threadripper,主频能到4.5GHz以上的,都是好选择。核心数嘛,8到16核就够用了,再多就是浪费。
2.1.2 内存:容量够用,速度要快
内存这块,我建议至少64GB起步。为什么?因为你要加载历史数据、缓存行情快照、运行策略模型。尤其是做回测时,数据量一大,内存小了直接卡死。
但更重要的是内存频率和时序。DDR5 6000MHz以上的内存,延迟比DDR4低不少。我在项目中遇到过,同样的策略,换了一套高频内存后,回测速度提升了30%。嗯,这钱花得值。
2.1.3 硬盘:NVMe SSD是标配
硬盘这块没得商量,必须NVMe SSD。SATA SSD?别想了,延迟太高。机械硬盘?那是上个世纪的东西。
我建议至少两块NVMe SSD:一块装系统和软件,一块专门存行情数据和日志。这样读写不冲突,性能更稳定。
2.1.4 网卡:双口万兆起步
网卡是交易系统的咽喉。我建议至少配双口万兆网卡,最好是Intel X710或者Mellanox ConnectX系列。为什么双口?一口接行情源,一口接交易网关,物理隔离,互不干扰。
如果你做的是高频交易,那25G甚至100G网卡也得考虑。不过说实话,大部分团队用万兆就足够了。
2.2 网络拓扑设计
网络拓扑,说白了就是你的服务器怎么连、数据怎么走。设计得好,延迟低、稳定性高;设计得不好,各种丢包、抖动,让你欲哭无泪。
2.2.1 经典三层架构
我推荐用核心-汇聚-接入的三层架构。核心层用高性能交换机,汇聚层做流量聚合,接入层连服务器。这样层次清晰,扩展也方便。
举个例子,我之前的项目是这样搭的:
- 核心层: 一台Cisco Nexus 93180YC-FX,做路由和VXLAN
- 汇聚层: 两台Arista 7050SX,做MLAG冗余
- 接入层: 若干台Mellanox SN2010,直接连交易服务器
这样设计的好处是,任何一台交换机挂了,业务都不会中断。我曾经遇到过汇聚层交换机电源故障,但MLAG自动切换,交易完全没受影响。
2.2.2 行情与交易分离
这是个大原则。行情数据和交易指令,必须走不同的网络路径。为什么?因为行情数据量大、带宽占用高,如果和交易指令混在一起,很容易造成交易指令延迟抖动。
我建议这样:
- 行情网络: 独立的VLAN,走组播,带宽至少10G
- 交易网络: 独立的VLAN,走单播,带宽1G就够,但延迟要极低
2.3 延迟优化基础
延迟优化,是量化交易的核心竞争力之一。我把它分成三个层面:硬件层、系统层、应用层。
2.3.1 硬件层优化
硬件层,说白了就是缩短物理距离。我建议:
- 服务器靠近交易所: 能放交易所机房就放交易所机房,实在不行也要选同城的IDC
- 用光纤代替铜缆: 光纤延迟比铜缆低,而且抗干扰
- 避免不必要的网络设备: 能直连就直连,少经过一台交换机,就少几微秒延迟
2.3.2 系统层优化
系统层,主要是操作系统和驱动的调优。我常用的几个手段:
- 关闭CPU节能模式: 把CPU governor设为performance,避免频率动态调整带来的延迟抖动
- 绑定中断到特定CPU核心: 网卡中断、磁盘中断,都绑定到独立的核心,避免争抢
- 使用DPDK或Solarflare: 绕过内核协议栈,直接从用户态收发网络包,延迟能降一个数量级
2.3.3 应用层优化
应用层,就是你的交易程序本身。我建议:
- 用C++或Rust: Python虽然开发快,但延迟太高。高频交易的核心逻辑,必须用编译型语言
- 避免动态内存分配: 交易过程中,不要new、malloc,所有内存预先分配好
- 使用无锁数据结构: 多线程通信时,用无锁队列代替互斥锁,避免上下文切换
2.4 机房环境要求
机房环境,很多人不重视。其实,环境不好,再好的设备也白搭。
2.4.1 电力:双路UPS是底线
电力是机房的生命线。我建议:
- 双路市电: 来自不同的变电站,一路挂了另一路顶上
- UPS: 至少N+1冗余,续航时间不低于30分钟
- 柴油发电机: 如果条件允许,配一台柴油发电机,应对长时间停电
我曾经遇到过,机房所在区域电网改造,停电8小时。还好有柴油发电机,交易一点没受影响。隔壁机房没发电机,直接停机一天,损失惨重。
2.4.2 温湿度:恒温恒湿
服务器对温湿度很敏感。温度高了,CPU降频;湿度高了,容易短路。我建议:
- 温度: 控制在22±2℃
- 湿度: 控制在40%-60%
- 精密空调: 用机房专用精密空调,别用家用空调
2.4.3 物理安全:门禁+监控
交易服务器里存着你的策略代码和密钥,物理安全必须到位。我建议:
- 门禁: 指纹+密码双重认证
- 监控: 7×24小时视频监控,保留90天录像
- 机柜锁: 每个机柜单独上锁,钥匙专人保管
2.5 知识体系总览
下面这张图,是我画的硬件与网络规划的核心逻辑。你看一眼,就能明白各个模块之间的关系。
这张图把四个模块串起来了。你从服务器选型开始,然后设计网络拓扑,接着做延迟优化,最后搞定机房环境。每一步都环环相扣,缺一不可。
好了,硬件与网络规划就聊到这儿。记住,地基打得牢,楼才能盖得高。下一章,咱们聊聊软件环境搭建,那又是另一番天地了。
公众号:蓝海资料掘金营,微信deep3321