有时候我会想,量化私募里最容易被低估的技术岗位是什么。很多人第一反应是策略研究员、量化工程师,但很少人注意到,在交易链路和数据管线背后,还有一批人专门跟集群、算力、稳定性死磕。标题里这个岗位——系统可靠性工程师,恰恰是量化公司里那种"平时没人夸你,一出事所有人找你"的角色。量化对算力的依赖不是"跑得动就行",而是"必须稳定、必须可预期"。这篇文章我就结合自己在这个圈子里摸爬滚打的经验,聊聊量化私募SRE到底在做什么、需要什么样的技能、会遇到哪些刻骨铭心的坑,以及怎么看待这个岗位的成长路径。
1. 量化私募的SRE和互联网SRE,根本不是一回事
很多从互联网大厂转过来的运维、SRE,刚进量化公司的时候都会有一个适应期。表面上看,岗位名字差不多,都是保障系统稳定、处理告警、提升可用性,但实际工作重心和思维模式差别很大。
互联网的SRE更关注的是容量、成本、用户体验指标,比如接口响应时间、订单成功率、资源水位,很多故障的容忍度是"秒级"甚至"分钟级",SLO给的99.9%已经算很严格了。量化私募不一样,尤其是中高频交易为主的公司,稳定性意味着低延迟的确定性和计算结果的精确性。这里说的不是"响应快",而是"链路里每一个环节的耗时都要在预期范围内",任何一次偶发的卡顿、时钟跳变、CPU调度抖动,都可能直接影响盘中决策或交易执行。
从工作内容上看,互联网SRE大量时间在搞Kubernetes、微服务治理、全链路监控;量化SRE的主战场则是HPC集群——高性能计算集群。你要面对的是几十台甚至上万台CPU/GPU节点,IB网络、并行文件系统、作业调度系统,以及围绕这些硬件之上的行情、策略、交易、风控等平台服务。目标不是让一个web服务保持高可用,而是让一个庞杂的科学计算集群在行情高峰时段的每一次迭代、每一个分布式训练任务,都按预期节奏跑完。
量化公司对SRE的另一个隐性要求是对交易业务的理解。你可能不需要写策略,但必须知道策略的Tick频率、数据依赖、回测和实盘的链路差异。因为这些决定了你对一个告警的响应级别。比如某个存储集群IO延迟升高了,如果你不了解这会影响盘后批量计算而不会影响盘中交易,你可能会过度紧张;反过来,如果不了解盘中某个延迟敏感服务对CPU绑核的依赖,你可能会漏掉真正的致命故障。
还有一点,量化私募普遍讲究敏捷和直接。一个SRE往往要覆盖硬件、系统、网络、中间件、应用监控多个层面,没什么"基础设施组""应用运维组"的分工。今天你可能在排查IB交换机光模块的误码率,明天可能就在帮策略团队调一个Python分析工具的性能问题。这种工作方式对综合能力的要求很高,但也让这个岗位的成长速度非常快。
2. 算力集群的日常保障:从硬件巡检到调度治理
2.1 硬件与物理层的监控基线
量化公司的集群硬件和普通互联网公司的云服务器很不一样。很多公司是自建机房、采购整柜的GPU服务器,配上专用的IB高速网络,这样能获得极致的性能确定性。但也意味着SRE必须懂硬件级别的监控和诊断。
硬盘故障、GPU掉卡、内存ECC报错、CPU降频,这些在云上都有平台帮你看着,在自建集群里全靠自己。我们的做法是,对所有节点部署带外管理通道(比如IPMI/BMC),统一采集硬件传感器数据,包括温度、功耗、风扇转速、电源状态,再叠加操作系统层面看到的PCIe错误、EDAC内存错误、NVMe健康度指标,写入时序数据库里做基线比对。
为什么强调"基线比对"而不是"阈值告警"?因为硬件指标和业务压力强相关。比如GPU温度,满载跑训练和空载肯定不一样,简单的"温度超过80度告警"完全不可用。我们后来改成按节点状态(空闲、单卡任务、整机任务)分开建模,每个状态下的温度、功耗、显存错误率都有独立的基线,超过基线两个标准差才告警。这套机制帮我们抓出过不少早期故障。
2.2 作业调度的稳定性治理
高性能计算集群里,作业调度系统就是"交通警察"。量化公司用得最多的是LSF和Slurm这类调度器。SRE对调度的治理,核心要盯两件事:队列健康度和资源碎片化。
队列健康度很容易理解,就是作业是否能正常排队、分发、启动、回收。我们曾经碰过一个问题:某个节点的GPU显存没有彻底释放,调度器认为这块卡还是空闲的,又把新作业塞进去,结果作业直接OOM失败。后来做了两层防御:调度器层面配置了作业结束后的强制显存清理,监控层面加了一个"调度器视角的空闲资源 vs 实际可用资源"的差值指标,超过阈值就自动把节点标记为排障状态,不再分配新作业。
资源碎片化是更隐蔽的坑。GPU服务器通常有8张卡,如果有的任务申请1张卡、有的申请4张卡,长时间跑下来,集群里会出现大量"明明算力很多但调度不进去"的碎片。我们做了个简单的调度策略优化:把节点按GPU卡数分组,小任务集中落到固定节点上,大任务用整机节点,必要时开启节点空闲抢占。这一套调整下来,集群实际利用率提升了大概15%,效果非常直接。
调度治理里面还有块大头是优先级管理。量化公司里的作业类型五花八门:日内的实时计算、盘后策略回测、模型训练、数据清洗,以及对延迟极度敏感的行情接入服务。这些作业不可能一个优先级。我们当时的策略是设置多级队列:实时/准实时任务独占部分节点,带资源预留;批量任务在余量里跑;超长训练任务放在最低优先级,可被抢占。这套体系避免了"一个跑10个小时的训练任务把盘中行情计算挤死"的惨剧。
3. 指标收集体系:量化SRE最核心的基建
标题里有一句话很关键:"设计收集集群中平台及服务各种相关指标"。这正是量化SRE的价值所在——你要能定义什么算"正常",才能在上千个指标里发现"不正常"。
3.1 指标选型的几个真实原则
刚开始做监控平台的时候,最容易犯的错误是"能采的都采",把节点数、CPU核数、负载、内存、磁盘IO一堆指标全堆上去,结果告警阈值不知道设多少,敏感项全被淹没。后来总结了几个原则,非常值得参考:
- 业务链路优先:先梳理交易/计算的主链路,这条路线上每个环节的核心指标必须齐全、可靠、低延迟。
- 有阈值就设,没阈值先建基线:新接入的指标先采集两周,跑出分布后自动生成动态阈值,而不是拍脑袋。
- 关注二阶指标:不只看数值本身,还要看变化率、方差、持续时长。比如磁盘使用率80%不可怕,可怕的是半小时内从40%冲到80%。
- 监控也要监控:采集器本身的CPU、内存、文件队列积压情况,必须纳入告警,不然监控系统失效了都不知道。
3.2 技术栈选择与架构设计
指标收集这套体系,业界有比较成熟的开源方案,不用重复造轮子。我们当时的架构大致是:节点上的采集器用Prometheus的Exporter模式,暴露指标接口;集群统一用Prometheus做拉取,联邦方式汇总到中心机房;长时间序列放到对象存储做冷备,热数据保留在时序库里方便实时分析;看板用Grafana,告警走Alertmanager再加一层自定义的告警聚合。
之所以选Prometheus这套,是因为它在多集群联邦、服务发现、动态阈值上确实成熟,量化场景里还可以用Recording Rule预聚合一些复杂指标,减少查询压力。不过要注意几个工程细节:
- 采集频率要和业务重要性挂钩:行情相关节点1秒采集一次,离线计算节点15秒一次就够了,全1秒会把存储和计算资源打爆。
- 标签设计一定要克制:标签基数过大是Prometheus性能的杀手,量化集群里任务名称、用户标签、节点标签这三类够用了。
- 告警需要分级和聚合:同一节点多个显卡同时掉温度,应该合成一条告警而不是刷8条;夜间可以自动压缩批量告警成日报。
3.3 从指标到可观测性:日志、链路、事件三件套
纯粹收集指标还不够。量化集群里很多故障是"指标看起来正常但业务不对",这时候必须把日志、链路追踪和事件机制一起拉通。
日志重点采集三类:调度器日志(作业生命周期)、节点系统日志(内核、驱动、硬件报错)、平台服务日志(行情接入、风控、交易接口)。我们用统一日志采集器搜集后进了集中日志平台,做成全文检索和模式识别。
链路追踪则主要针对分布式数据处理任务,比如一个回测任务会经过数据读取、因子计算、组合优化、结果回写多个阶段。用一个轻量的追踪框架把每个阶段的耗时、输入输出行数、资源占用串起来。一旦某个阶段出现异常,能快速定位是数据源问题、代码效率问题还是资源竞争问题。
事件机制就是我们的"变更管理"。任何一次配置修改、参数调整、集群扩容,都要记录在案的。很多线上故障的根源是某个人改了某个配置没同步。后来我们定了规矩:关键变更必须走双人确认流程,变更前后自动对比关键指标,这个习惯帮我们减少了一半以上的"莫名其妙故障"。
4. 量化集群常见故障场景与排查链路
这部分我挑三个自己实际踩过的坑,每个都有比较完整的排查过程,希望能帮大家建立类似场景下的排查直觉。
4.1 InfiniBand网络降速:排障链路要从物理层摸到应用层
某天值班,发现A组的分布式训练任务突然变慢,损失函数下降速度只有平时的1/3。第一反应是GPU资源被抢占,但检查调度队列后发现训练任务独占节点,负载没有异常。接着看训练日志,发现AllReduce阶段的耗时急剧上升,而计算阶段的耗时没变。这基本锁定是网络通信瓶颈。
IB网络排障的标准链路:先看端口状态,确认速率是否从100Gbps降到了20Gbps(链路降速)。再查链路层的误码率和CRC错误计数,结果发现大量CRC错误,说明物理层信号质量有问题。继续排查光模块、光纤、交换端口,最后发现是光纤弯曲半径过小导致的信号衰减,换了一根线后恢复。
这类故障的教训是,IB网络的健康必须主动监控,不能等业务变慢了才去看。我们后来加了端口速率变化告警,一小时内轮询一次物理层错误计数,误码率超过阈值就直接通知值班SRE。
4.2 时钟同步漂移:时间一致性是量化集群的隐藏命脉
量化系统里时间敏感度极高。行情时间戳、订单生成时间、成交回报时间的顺序如果发生了错乱,轻则策略信号延迟,重则造成风控误判。我们的时钟源用的是一套高精度时间同步方案(PTP),但偶尔还是会出现某个节点的时钟跳变几十微秒的情况。
排查过程很有意思。先发现监控图上某个行情处理进程在每天固定时刻都会有一个短暂的耗时抬升,一开始怀疑是业务代码定期执行什么清理逻辑,查了一圈没发现。后来对比多个节点的事件时间,发现这个进程所在机器的时钟在某个时刻被强制校准过一次,导致进程记录的时间戳出现跳变,触发了整个交易链路的数据错位。
这个坑的根因是:节点时钟在长时间运行后有一定漂移,NTP/PTP会周期性校准,校准瞬间那几十到几百微秒的时间跳跃对普通业务毫无影响,但对低延迟交易系统是致命的。我们的解决方案是改用硬件时间戳(PTP的硬件时间戳模式)加offset监控自动校正,并且在应用层对关键服务的时钟跳跃做了容忍处理:一旦检测到时间跳变超过阈值,主动隔离该节点并重新拉起服务。
4.3 并行文件系统元数据风暴:存储瓶颈比算力瓶颈更难查
某个交易日的盘后,大批回测任务同时启动,整个数据平台突然响应很慢,连登录跳板机都卡。表面看CPU、内存都不高,存储节点的IO吞吐也没满。折腾了很久,后来看到并行文件系统的元数据服务(MDS)CPU被打满,才明白问题所在。
大量任务同时做目录扫描和文件打开操作,会产生海量的元数据请求。这种请求是IO密集型、随机小包,对吞吐要求不高但打满CPU,所以存储的数据面看起来不忙,瓶颈却在元数据服务上。找到根因后做了几个优化:数据目录分层组织,避免单个目录文件数过多;批量数据预取脚本改为流式处理;回测任务的目录浏览权限做了缓存预热。从那以后,这种"存储看起来正常但全体卡死"的故障基本绝迹。
元数据类故障是所有存储系统里最难定位的一类,因为它突破了"看吞吐看IO利用率"的惯性思维。凡是遇到"资源不忙但业务很卡"的情况,记得往锁竞争、元数据服务、线程池耗尽这些方向排查。
5. 技能栈、工具链与职业发展路径
5.1 量化SRE需要掌握的核心技能
如果给这个岗位画一个技能图谱,大概是这几个模块:Linux内核与性能调优、高性能网络、存储系统、集群调度、监控可观测性、自动化脚本开发。
很多人问我,量化SRE是不是要特别懂内核源码、体系结构?我的看法是,懂原理是必要的,但不要求源码级精通。日常工作中最常接触的是这些场景:CPU绑核、内存大页、内核网络参数调优、GPU驱动故障排障、并行文件系统的性能诊断,这些更多是"实践经验+原理理解"的组合,而不是纯研究。
编程语言方面,Python是必须熟练的,监控平台开发、自动化脚本、临时工具都离不开。C/C++和Shell属于加分项,涉及到一些性能工具的开发或系统级调试时非常有用。
5.2 值得深挖的工具链和方向
监控层面:Prometheus + 时序数据库仍然是主流,但近年VictoriaMetrics、Grafana Loki这类更轻量、更易扩展的方案也在量化公司里有不少应用落地。
高性能计算层面:熟悉LSF、Slurm之外,容器化调度也开始进入量化领域(用Singularity这类专用容器方案跑训练任务的越来越多)。密不可分的还有GPU虚拟化/MIG、分布式训练框架,这些SRE至少要能用,不一定要深入优化,但出了问题得知道方向在哪。
网络层面:IB和RoCE知识是核心竞争力。从交换机配置、路由策略、拥塞控制,到光纤、光模块物理层的健康诊断,全套链路都需要懂。这部分人才在市场上很稀缺。
5.3 量化SRE的成长心态
量化公司里的SRE和互联网比,业务可见度更高。你的工作直接关系到策略是否跑得顺畅、交易是否稳定,成就感来得很快,但压力和迭代速度也大得多。盘中出了问题就是真金白银的损失,这对心态的锻炼很大。
对刚入行的人来说,如果你想往量化SRE方向发展,我的建议是:先找一个能接触到完整HPC基础设施的环境,不一定非得是量化私募,大的互联网公司、科研院所、云厂商里的高性能计算团队都可以。关键是亲手碰过真实集群、真实调度系统、真实故障。积累个两三年后,量化行业的SRE岗基本都能轻松胜任。
另外,金融行业对技术和业务的结合要求很高,所以一定要主动去理解量化业务的正循环:数据进来、因子计算、信号生成、风控、下单、成交回报。你不需要懂策略的细节,但要知道哪条链路断了会出什么后果。这个理解越深,你的告警分级、监控设计、故障排查就越有针对性,价值也越大。
6. 最后分享一点自己的亲身体会
做了这么多年量化SRE,最大的体会是:这个岗位是个"不变量维护者"。策略工程师在追求更优的模型,交易工程师在追求更快的执行,而SRE的价值在于提供一个确定性的底座——让他们的工作成果不会因为基础设施的意外而前功尽弃。
如果你也想进这个方向,别被"SRE"这个标签限制住,多看HPC、网络、存储方向的内容,多折腾自己的软硬件环境,把故障排查的思路练成肌肉记忆。量化公司找SRE从来不看你简历上写了多少年经验,他们更看重你面对一个真实故障时能不能冷静、系统、高效地把问题定位到根因。这个能力,永远都有市场。