堆積也會說謊:Mistral AI 排查 vLLM 記憶體洩漏的技術內幕

Mistral 工程團隊深入探討 vLLM 記憶體洩漏的調查與解決過程,具極高工程參考價值。

• Mistral AI 在測試前沿模型的 Prefill/Decode (P/D) 分離式架構 時,發現 vLLM 搭配特定設定會出現每分鐘 400 MB 的穩定記憶體增長,最終導致 OOM (Out of Memory)。 • 由於問題僅出現在使用 NIXL 與 UCX 進行 KV Cache 傳輸的解碼端,團隊最初嘗試了 Memray、Guppy 3 及 GDB 等多種 Python 與 C 語言記憶體分析工具,但均無法有效檢測。 • 藉助 Heaptrack 工具追蹤 malloc 與 free 運算後,發現堆積記憶體本身保持穩定,但 Peak RSS (常駐記憶體集大小) 持續攀升,顯示洩漏發生在堆積區之外。 • 深入探討 Linux 記憶體架構 後發現,傳統工具僅能監控 glibc 的記憶體分配,卻忽略了透過 mmap 系統呼叫 或其他底層機制產生的匿名記憶體映射。 • 團隊透過 /proc 檔案系統與 pmap 指令即時追蹤進程的記憶體區域,成功鎖定並剖析隱藏在複雜依賴層中的記憶體洩漏根源。

「這場技術除錯之旅揭示了現代軟體中,隱藏在複雜依賴層背後的潛在風險,也展示了從高階 Python 工具深入到核心級追蹤的必要性。」


來源:Mistral News

閱讀原文 ↗
← 回首頁