进了这家券商做运维和产品支持,三年了。说白了,我就干两件事:一是盯着交易、行情、报盘这些核心系统别出岔子;二是把营业部和客户骂娘的那些问题,翻译成开发能看懂的需求。没什么高深理论,每天就是跟故障告警、参数配置、验收报告打交道。
先讲个今年印象深的故障。三月份一个周二下午,营业部那边炸了锅——普通账户撤单全报“废单,状态非法”。我第一反应不是翻代码,而是登上前置机看报盘网关。按老套路排查:先ping交易所线路,延时正常;再看报盘进程内存占用,没超阈值。最后卡在订单流水号上。抓包对比了十分钟,发现异常撤单的TCP报文里,流水号字段比正常的大了一截。顺着往上查,是下游一个消息队列堵了,积压导致上游撤单指令携带的流水号跳出了当前会话的合法范围。这坑以前没见过,那天晚上我跟开发同事一起,在报文组装逻辑里加了一道校验位——如果流水号超出范围就自动重置会话,同时给队列深度加了告警。第二天上线,再没犯过。
上半年还有个极速交易柜台的验收,折腾得够呛。供应商的测试报告全绿,但我不放心,自己搭了套模拟环境用脚本连跑一周压力。发现他们在高并发撤单时内存释放有缺陷:跑三个小时后,响应时间从50微秒陡升到5毫秒。我把复现步骤、日志时间戳、堆栈信息打包成缺陷报告,前前后后推了三轮。验收会上我没签字,直到他们出了补丁,并且在我指定的三组服务器上各跑了24小时压测,确认稳定才放行。后来有人问我是不是太较真,我说这玩意儿开盘时间出问题,你我谁都担不起。
除了这些硬故障,我还兼着做产品的那摊事。说白了就是跟交易员、客户经理聊天,把“这系统真难用”翻译成具体的修改点。
四月份,机构客户老张连着两天打电话骂人,说我们算法交易系统拆单时,子单价格总偏。我带着录音笔去他办公室待了一下午,看着他操作。问题其实很简单:系统界面上的“基准价”默认是昨收,但他做日内回转要的是即时行情价。每次手动改,他嫌烦。这不是bug,是交互设计跟实战脱节。
我回来写了份需求,核心就三条:第一,算法参数模板里增加“价格基准”的可选默认值;第二,在拆单确认界面高亮显示子单理论成交价与当前买一/卖一的偏离度;第三,支持一键复制上一笔算法的参数配置。开发排了一个月,上线后老张打了个电话来,就一句话:“这回好用了。”那是个雨后的早晨,说实话我没太激动,只是记了条笔记:下次做类似功能前,先让用户跑一遍老策略,看实际偏离度再定默认值,别闭门造车。
还有交易员小刘那事。他每天开盘前要手动刷新十几个窗口看报盘机状态,我翻了他一周的登录日志,平均每天花八分钟干这破事。我跟运维同事一起,在监控面板里加了张“报盘机仪表盘”,红绿灯标识每台机器的连接状态、最后心跳时间、待处理消息队列长度。上线后小刘说“终于不用开那么多窗口了”。八分钟听着不多,但对他这种高频交易员,每天多八分钟看盘,值了。
记得项目冲刺那周,我们同时要改网上开户接口和迁移营业部老系统的存储。周四晚上十点,我正准备收工,监控突然告警:历史行情服务器磁盘IO等待超过200毫秒。冲到机房,风扇轰轰响,硬盘灯狂闪。我拿笔记本连上BMC,盯着iostat看了半小时,发现写请求大小的平均值异常大——128KB,而另一个离线查询任务用的是4KB。两个任务争IO,把盘堵死了。这不是硬件故障,是调度策略问题。
那晚我就在机房隔间里改脚本。把归档任务的IO优先级调低,并且按业务日期分片提交,每片64KB。凌晨三点半重新跑,IO等待降到了50毫秒以下。我往群里发了条消息:“存储问题已处理,不影响明天开盘。”然后趴在桌上眯了两小时。第二天一切正常。同事后来问怎么不走紧急变更,我说这种临时调参按应急预案的授权范围可以直接干,事后补记录就行。什么时候讲流程,什么时候先解决问题,心里得有杆秤。
当然,也有翻车的时候。六月份,营业部提了个需求:优化账户风险提示。我按自己理解画了原型,然后催着开发做完了。结果给营业部一看,人家说“我们不是要这个”。白白浪费两周。那之后我养了个习惯:任何需求,先让用户拿笔画个草图,或者找个现成例子说“就像某某软件那样”。哪怕多花半天沟通,也比做完了推翻强。
还有复盘不彻底的老毛病。上半年发生三次深交所报盘连接闪断,每次都是重启服务恢复,就没深挖。九月份才定位到是防火墙会话超时参数跟报盘进程的keepalive机制不匹配。这问题其实第一次出现时就能查出来——只要对比一下闪断时间和防火墙session老化时间就能发现。我后来补了一份处理手册:把防火墙参数改成1200秒,报盘心跳间隔改成60秒,并且加了会话保持的监控脚本。这事儿提醒我,小毛病不刨根问底,迟早变大坑。
-
★好拿网hn373.cOm精选档案:
- 证券公司工作总结 | 证券公司个人半年工作总结 | 证券公司个人转正工作总结 | 证券公司实习总结 | 证券公司年度工作总结 | 证券公司年度工作总结
说明年的打算吧。技术层面,我想把交易系统的故障自愈能力往上提一提。现在只有监控和告警,没有自动恢复。先从报盘网关异常断开做起,写一套健康检查和自动重连脚本,目标30秒内完成切换。那个防火墙案例的脚本我已经写了雏形,下个月放到测试环境跑。
产品层面,继续完善机构客户的算法交易助手。下半年好几个客户反映策略回测功能太简陋。我想参考老张那次的教训,重新设计回测报告,增加逐笔成交明细比对——允许用户导出实际成交的逐笔委托,再跟回测的理论成交做滑点分析。具体来说,就是做一个“实际vs回测”的对比表格,标出每一笔的价差和原因。这样他们调参数就有了依据。 WWw.hn373.cOM
最后,把知识库搭起来。今年踩的坑、写的脚本、排的故障步骤,都得沉淀成文档。不用花哨,Markdown写清楚就行。比如这次防火墙问题,我已经把排查步骤拆成三张截图,配上命令行和预期输出,放进了共享盘的“历史故障库”文件夹。每周至少补两条,逼着自己别偷懒。
做这行,说到底就是不出事、好办事、办好事。明年的目标不高,但每一步都得落地。
-
需要更多的工作总结网内容,请访问至:工作总结