谷歌工程師提案process_reap:幫助恢復內存的系統調用方案
儘管像OOMD/systemd-oomd這樣的Linux系統守護進程越來越被接受,但在高負載情況下處理系統內存(RAM)和其他行為仍存在一個問題–殺死並回收進程所需的時間。在今年6月下旬,Google工程師提出了名為“process_reap”的全新系統調用,以幫助恢復內存。
Google推薦的process_reap 系統調動被設計為從調用者的相關聯繫中回收瀕死進程。使用process_reap 應該允許內存在調用者的CPU 親和力和優先級下更快地被釋放。Process_reap 只能用於通過SIGKILL 死亡的進程,例如通過內存不足/內存壓力守護進程觸發的時候。
Google的Suren Baghdasaryan 發出的提案解釋說:“能夠快速有效地釋放內存是很重要的。不幸的是,進程在收到SIGKILL 後釋放其內存的時間可能會根據進程的狀態(不間斷的睡眠)、進程運行的內核的大小和OPP 水平而變化。以一種更可預測的方式釋放目標進程的資源的機制將提高系統控制其內存壓力的能力”。
自6月底發表以來,一些人質疑process_reap是否真的需要自己的系統調用和其他問題,但到目前為止,這似乎是一個沒有被直接批評或擊倒的想法,並可能會整合到未來Linux 內核版本的Mainline 中。