內存不足處理程序發布​​ earlyoom 1.4

經過八個月的開發 發表 後台進程釋放 早期房間1.4,它會定期檢查可用內存量(MemAvailable、SwapFree)並嘗試在早期階段響應內存短缺的發生。 項目代碼是用C語言編寫的 分發者 根據麻省理工學院的許可。

如果可用內存量小於指定值,那麼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

添加評論