核心概念
HotMem 透過將虛擬記憶體劃分為專用區塊並優化記憶體熱插拔介面,實現了無伺服器微型虛擬機中快速且無干擾的記憶體回收,顯著提升資源利用率和效能。
研究背景
無伺服器運算,特別是功能即服務 (FaaS) 模型,近年來成為雲端運算的主流典範。為了在多租戶環境中提供強大的隔離性,FaaS 供應商通常使用虛擬機 (VM) 或微型虛擬機 (microVM) 來隔離函數。然而,現有的虛擬機記憶體彈性機制在縮減記憶體時,特別是在釋放記憶體時,會遇到回收延遲增加的問題,同時還會增加 CPU 和記憶體頻寬的負擔。
HotMem 設計理念
HotMem 是一種針對以虛擬機為基礎的無伺服器函數,實現快速高效虛擬機記憶體熱插拔的新穎方法。其核心概念是將虛擬熱插拔記憶體區域與常規虛擬機記憶體分隔,從而限制這些區域內分配的壽命,進而實現快速有效的回收。
HotMem 運作機制
記憶體分區: HotMem 將客戶機記憶體劃分為區塊,每個區塊足以容納單一函數實例的完整占用空間,並擴展作業系統記憶體管理器,將每個實例分配到專用的分區。
區塊感知的熱插拔: HotMem 擴展了熱插拔介面,使其能夠感知這些分區,在插入操作期間動態填充分區,並在拔出請求期間立即縮減分區。
區分共用與私有分配: 為了保留多容器單一虛擬機模型的記憶體節省優勢,HotMem 為每個虛擬機採用共用分區來支援所有實例的檔案映射,並使用私有分區來支援實例的匿名映射。
優點
資源彈性: HotMem 能夠根據在同一個虛擬機中執行的活動函數實例總數的記憶體需求,相應地擴展和縮減其記憶體資源。
資源共享: HotMem 允許在同一個虛擬機中執行的函數實例之間共享狀態(例如程式庫),以保留多容器單一虛擬機模型的記憶體節省優勢。
零干擾: HotMem 不會影響虛擬機中已在執行的函數實例的效能。
評估結果
HotMem 在回收虛擬機記憶體方面的速度比現有技術快一個數量級,通常允許在不到一秒的時間內回收數 GB 的記憶體。它還能在動態擴展和縮減資源的同時,實現與靜態過度配置虛擬機相當的 P99 延遲。
總結
HotMem 透過解決現有虛擬機記憶體彈性機制的效能瓶頸,為無伺服器函數提供了快速且無干擾的記憶體回收機制,顯著提升了資源利用率和效能。
統計資料
HotMem 在回收虛擬機記憶體方面的速度比現有技術快一個數量級。
HotMem 通常允許在不到一秒的時間內回收數 GB 的記憶體。
HotMem 能夠在動態擴展和縮減資源的同時,實現與靜態過度配置虛擬機相當的 P99 延遲。
HotMem 記憶體回收吞吐量比現有技術高 7 倍。