发布earlyoom 1.4内存不足处理程序

经过八个月的开发 发表 后台进程发布 早期房间1.4,它会定期检查可用内存量(MemAvailable、SwapFree)并尝试在早期阶段响应内存短缺的发生。 项目代码是用C语言编写的 分发者 根据麻省理工学院的许可。

如果可用内存量小于指定值,则earlyoom将强制(通过发送SIGTERM或SIGKILL)终止消耗内存最多的进程(具有最高的/proc/*/oom_score),而不会导致系统崩溃状态以清除系统缓冲区并干扰操作交换(当低内存状态已经达到临界值时,会触发内核中的 OOM(内存不足)处理程序,通常此时系统不再响应用户操作) 。

Earlyoom 支持向桌面发送有关强制终止进程的通知(使用 notification-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

添加评论