經過八個月的開發
如果可用內存量小於指定值,那麼earlyoom將強制(通過發送SIGTERM或SIGKILL)終止消耗內存最活躍的進程(具有最高的/proc/*/oom_score值),而不帶系統狀態清除系統緩衝區並干擾工作交換(當內存不足狀態已經達到臨界值時,內核中的 OOM(內存不足)處理程序被觸發,通常到此時系統不再響應到用戶操作)。
Earlyoom 支持將強制終止進程的通知發送到桌面(使用 notify-send),並且還提供了定義規則的能力,您可以在其中使用正則表達式指定首選終止的進程的名稱(選項“- -prefer”)或應避免停止(選項“--avoid”)。
主要的
- 以犧牲為代價
延遲加載 流程屬性 流程選擇邏輯完成速度加快 50%; - 除了 PID 和進程名稱之外,日誌中還反映了被終止進程的 UID;
- 添加了以淺灰色突出顯示調試日誌;
- 清理了代碼;
- 在可能的情況下,使用塊局部變量的聲明;
- 添加了 PATH_LEN 設置以替換代碼中內置的緩衝區大小值;
- 確保啟動 cppcheck(如果可用);
- 新增“make bench”性能測試;
- 擴展測試集(進行測試);
- 在 systemd Earlyoom.service 單元文件中實現了 root 權限的重置。 這個改變
休息時間 GUI 通知的可能性。 要啟用 GUI 通知,建議通過取消註釋“DynamicUser=true”來返回 root 權限。 也禁用rootприводит 在 hidepid=1 或 hidepid=2 模式下掛載 /proc 時無法獲取內存消耗信息。
來源: opennet.ru