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