在生產推理部署中,請求量隨時間波動,需要推理副本彈性擴縮容。然而在 Kubernetes 上冷啓動推理工作負載可能需要幾分鐘,這段時間 GPU 已分配但處於空閒狀態,不產生任何 token,也不服務任何請求。這種延遲在流量高峰時可能導致 SLA 違規。
NVIDIA 最新推出的 Dynamo Snapshot 正是為解決冷啓動問題而設計。它基於檢查點/恢復方法,能夠在 Kubernetes 上實現接近物理極限的推理工作負載啓動速度。其核心是結合 cuda-checkpoint(保存 GPU 設備狀態)和 CRIU(保存主機 CPU 側狀態)兩種技術。
cuda-checkpoint 負責將 CUDA 上下文、流、設備內存和虛擬地址映射等 GPU 端狀態序列化到 CPU 內存中。而 CRIU(Checkpoint/Restore in Userspace)則遍歷 Linux 內核的資料結構,將進程樹的 CPU 內存、線程、文件描述符和命名空間等主機端狀態序列化到磁盤儲存。
在 Kubernetes 環境中,Dynamo Snapshot 通過一個特權 DaemonSet(snapshot-agent)來管理檢查點和恢復流程,可通過 Helm Chart 安裝。每個節點上的 agent 負責處理 runc 管理容器的檢查點和恢復,無需修改 runc 本身。
進行檢查點時,agent 等待工作負載就緒探測通過後,依次調用 cuda-checkpoint 和 CRIU 將狀態寫入共享儲存。恢復時,agent 啓動一個輕量級佔位 Pod,恢復 overlay 文件系統和 CRIU/CUDA 檢查點,恢復後的工作線程直接從被檢查點的精確指令位置繼續執行,完全感知不到檢查點或恢復操作的發生。
對於大規模推理部署而言,Dynamo Snapshot 的意義在於將擴縮容時間從分鐘級縮短到接近秒級,使集群可以在流量波動時快速響應,大幅降低 SLA 違規風險,同時提高 GPU 利用率。
WeChat
Profile