{"id":"mb-20260827-8d3e80","account":"mubei","brand":"","title":"45 分钟烧掉 4.4 亿美元，平均每秒蒸发 16 万","summary":"45 分钟烧掉 4.4 亿美元，平均每秒蒸发 16 万","body":"45 分钟烧掉 4.4 亿美元，平均每秒蒸发 16 万。\n2012 年 8 月 1 日的一个普通周三早晨，全美最大的华尔街做市商 Knight Capital，把自己送进了历史。\n没有黑客入侵，没有复杂的算法失控。\n干掉这家巨头的，是一行在系统里沉睡了 9 年的死代码。\n这起人类软件工程史上最昂贵的事故，到底是怎么引爆的？\n它背后的机器，叫「死代码复活与开关复用」。\n早在 2003 年，Knight 内部写过一个叫 Power Peg 的测试模块。\n它的功能只有一个：在测试环境下不计成本地以市价狂买，用来测试股票价格的波动反应。\n测试完成后，这套逻辑被弃用。\n但它从未被从生产环境的代码库里彻底删掉。\n它像一颗埋在底层系统里的地雷，静静躺了 9 年。\n2012 年夏天，纽交所推出散户流动性计划（RLP）。\nKnight 的工程师需要上线一套新功能去对接这套新交易规则。\n为了省事，工程师没有为新功能申请独立的配置开关，直接复用了 2003 年 Power Peg 留下的旧开关标志位。\n只要部署了新代码，这个开关就会激活新功能。\n只要新代码覆盖了所有机器，一切看似毫无破绽。\n致命的断裂发生在了部署环节。\n当时这家每天处理 200 亿美元交易的金融巨头，依然靠运维人员手动往 8 台服务器上拷贝代码。\n工程师拷贝了 7 台，漏掉了第 8 台。\n8 月 1 日上午 9 点 30 分，美股开盘，系统开关被统一拨通。\n前 7 台服务器正常运转。\n唯独漏掉更新的第 8 台服务器，收到开关指令后，瞬间唤醒了沉睡 9 年的 Power Peg。\n更糟的是，2005 年的一次底层重构，已经删掉了原有的成交量累计计数器。\n第 8 台服务器失去了所有的刹车机制，开始以毫秒级速度，疯狂在市场上买高卖低。\n灾难到这里原本还有救。\n真正把公司彻底推进深渊的，是接下来的「致命回滚」。\n开盘仅仅几分钟，后台就收到了数十封系统错误邮件。\n运维团队陷入恐慌，他们本能地做出判断：一定是刚刚上线的新代码出了问题。\n于是他们做出了工程史上最灾难的一个决定：把另外 7 台已经更新的正常服务器，紧急回滚到旧版本。\n这一次回滚，成了最后的引信。\n原本只有 1 台服务器在发疯。\n回滚之后，所有 8 台服务器的旧版代码全部复活，同时接入了那个被拨通的旧开关。\n8 台机器以 8 倍的速度，在全市场无休止地倾泻错误订单。\n45 分钟后，管理层终于强行切断系统。\n但一切已经无法挽回。\n400 万笔错误成交，涉及 154 只股票，累积了 70 亿美元毫无意义的风险头寸。\n实际亏损定格在 4.4 亿美元。\n而这家做市商账上的全部净资本，只有 3.65 亿。\n两天之内，公司股价暴跌 75%。\n美国证券交易委员会在随后的调查报告 Release No. 34-70694 中，依据《市场准入规则》Rule 15c3-5 开出重罚。\n4 个月后，这家曾经承接美股近两成零售交易的巨头被竞争对手 Getco 廉价吞并，彻底清算。\n复杂系统的崩溃，很少死于深奥未知的理论缺陷。\n它往往死于极其平庸的侥幸：留着没删的废弃代码、图省事复用的配置开关、缺乏自动化校验的手工部署，以及在恐慌中盲目按下的回滚键。\n软件工程里最危险的技术债，从来不是那些明知有缺陷的业务逻辑。\n真正致命的，是那些被所有人遗忘、却依然连在点火线上的死开关。","category":"科技","score":null,"translated_x_url":null,"translated_status_id":null,"published_at":"2026-08-27 21:12:40","created_at":"2026-08-27 21:12:40"}