OpenAI在2026年第二季度用Rust重寫了位於ChatGPT所有資料讀取前端的Python服務,這一專案由兩名工程師藉助Codex和GPT-5.5完成。新服務目前承載95%的生產流量,CPU效率是原服務的6倍,記憶體效率是15倍,Python實現正被全面棄用。
核心要點
- OpenAI的線上儲存平臺Habitat面向超過500PB的資料,每秒處理7000萬次以上的請求,支撐每週有十億人使用的產品。
- 從Python到Rust的重寫由兩名依賴Codex和GPT-5.5的工程師完成,帶來CPU效率6倍、記憶體效率15倍的提升。
- 更棘手的教訓來自運維而非語言:asyncio排程延遲、把負載集中到本已吃緊的Pod上的LIFO連線池複用,以及經由Envoy和Istio出現的驚群效應。
Habitat做什麼,為何存在
Habitat位於OpenAI的產品與底層儲存系統之間,後者包括Azure Cosmos DB、物件儲存、快取層和內部資料庫。當產品需要資料時,Habitat解析模式、路由請求、校驗授權、處理加密與序列化,並對請求整形、管理連線池。產品工程師只需面對一個介面,而不必逐一熟悉每個後端。
它的起點小得多。Habitat於2024年中以Python客戶端庫的形式上線,本質上是各服務匯入後用來訪問資料庫的共享包。這種設計構建很快,在一段時間內改進也很快:要加入快取或壓縮,釋出新版本再讓各團隊升級即可。
庫的問題在於升級是分散的。OpenAI提到,為了在單地域故障中存活,團隊曾試圖把關鍵資料分散到多個地域資料庫賬戶,這要求在每一個呼叫方服務內部加入新的路由邏輯,逐個部署,對線上流量做影子驗證,再通過功能開關啟用。協調數十個服務耗時數日,而且至少有一個團隊回滾到了帶有舊缺陷的版本,恰好製造出這項工作原本要避免的故障。Habitat在2025年中被拆分為獨立服務,產品端只保留一個輕量客戶端SDK,路由、部署、監控與訪問控制都收攏到一處。
規模之下暴露的失敗
在OpenAI的請求量級上用Python執行這項服務,暴露出基準測試裡看不到的問題。CPU密集的後臺工作引發的asyncio排程延遲,即便下游呼叫很快返回,也主導了尾部延遲。有一個案例是所有Pod每分鐘都把Statsig的功能開關配置解析一次JSON,沒有抖動,每個Pod八個程序同時執行,於是所有worker在同一刻卡住。修復手段平實卻有啟發:改用更小的定向配置、拉長重新整理間隔、給執行時機加入隨機化。
第二個失敗更為隱蔽。Python的aiohttp連線池預設按LIFO順序複用連線,這意味著越慢、越過載的伺服器歸還連線越晚,因而被選中的次數反而更多,流量集中到了最無力承接的Pod上。改為FIFO複用打斷了這一反饋迴路,並順帶降低了穩態下的請求波動。經由Envoy與Istio的驚群效應則補齊了這份清單。
OpenAI還做了一個看似限制、實則充當護欄的設計選擇:Habitat只暴露一套刻意收窄的NoSQL API。那些成本高昂或難以預測的查詢根本無法表達,因此即便呼叫方產品數量增長,單次請求的成本仍然可控。
兩名工程師,一次重寫
這次遷移最可能被反覆引用的細節是人力配置。一項處於十億周活產品關鍵路徑上的服務,從解釋型語言遷到Rust,是由兩名使用OpenAI自家編碼工具的工程師完成的。這為一場長期只靠個案支撐的爭論提供了具體資料:語言遷移過去被否決,往往不是因為目標語言選錯了,而是移植的人力投入無法被證明合理,而智慧體式編碼工具改變了這道算式。
效率數字值得仔細讀。CPU提升6倍、記憶體提升15倍,反映的是在以序列化和I/O協調為主的請求路由負載上,Python直譯器所承擔的開銷,這幾乎是Rust重寫的最佳情形。瓶頸在資料庫或外部API的團隊,不應期待同等回報。
對於想沿OpenAI這條路走的人,Rust生態自身的供應鏈暴露是另一重隱憂,被投毒的crate上線86分鐘的事件已把這一點說得很清楚。OpenAI的工程技術文章是兩篇中的第一篇,儲存層本身將在後續篇中展開。
常見問題
OpenAI為什麼把Habitat從Python重寫為Rust
在該服務的請求量下,直譯器開銷已無法接受,而團隊遇到的運維故障——asyncio排程延遲、連線池的亞穩態——都是把Python服務推出舒適區的症狀。Rust版本的CPU效率高6倍、記憶體效率高15倍,目前承載95%的生產請求。
這是否意味著Python不適合生產服務
並非如此。Habitat在年增速超過10倍的三年裡一直跑在Python上,這恰恰是重點:在產品形態尚未定型時,這個語言是正確的選擇,等規模足以證明其必要性後,團隊才有意識地償還了技術債。這篇文章描述的是一個時序決策,而不是對Python的判決。
Habitat背後是哪些儲存系統
Azure Cosmos DB是主要的資料庫層,此外還有快取、物件儲存和其他內部資料服務。產品並不直接訪問這些系統,而是呼叫Habitat,由它解析資料在哪裡以及如何觸達。


