提議中的Linux的動態內核堆疊功能補丁可節省大量內存
本週一,針對Linux 的新動態內核堆疊功能發布了一系列”徵求意見”補丁。早期測試表明,該功能有可能大大節省記憶體。根據去年LSF/MM 高峰會的提議,Google已經實現了對動態核心堆疊的支援。過去十年來,上游Linux 核心的預設堆疊大小一直是16K,而以前是8K。
Google一直在使用核心修補程式來保持8K 堆疊,但隨著時間的推移,他們需要更大的堆疊大小,這反過來又增加了超大規模部署的記憶體使用量。為了減少增加的記憶體使用,Google一直在研究動態內核堆疊,因為許多核心執行緒都可以容納在4K 或8K 的堆疊中。
到目前為止,動態內核堆疊的RFC 修補程式工作進展順利,已經進行了少量測試,並允許從4K 擴展到THREAD_SIZE 限制。Google工程師發現,動態核心堆疊平均可以節省70% 到75% 的核心堆疊記憶體。
Pasha Tatashin 發布的早期結果很有希望,但可能取決於工作負載、虛擬化和其他因素:
Tatashin 進一步補充說:”一些擁有數百萬線程的工作負載可以從這一功能中顯著受益。”
對節省內核堆疊記憶體這項工作感興趣的人,請參閱RFC 補丁系列。