解决Ubuntu 22.04频繁杀死应用的问题:关闭systemd-oomd守护进程
解决Ubuntu 22.04频繁杀死应用的问题
以下为关闭命令:
Ubuntu 22.04 LTS 版本带来一项新功能:默认启用 systemd-oomd 作为内存不足时的守护进程,它可以在内存高压的情况下干掉一部分进程。
然而,该 OOMD 功能似乎杀红了眼,有时候即使用户没有感到任何内存压力,它也会莫名其妙地终止正在运行的程序,比如 Firefox、Chrome 或 Visual Studio Code,体验极差的用户在 Ubuntu 社区邮件列表中大量留言吐槽。
一位沮丧的用户写道:
在杀死应用程序之前应该有一个警告,以便有机会保存应用程序数据。杀死应用程序后至少应该有道歉和解释。当前的行为给人的印象是 Ubuntu 22.04 使用起来不可靠且不安全,这对于 LTS 版本来说是个大问题。
随后,Canonical 工程师 Nick Rosbrook 在邮件中解释了 OOMD 杀死进程的条件:
- 条件 1:当总系统的内存使用量和交换使用量都超过 SwapUsedLimit(在 Ubuntu 上默认为 90%), cgoups 中超过 5% 的交换就会成为 OOM 的终结对象。
- 条件 2:当一个单元的 cgroup 内存压力超过 MemoryPressureLimit ,则监控后代 cgroups 将从具有最多回收率的进程开始执行终止。
在实践中,大部分应用被杀死都是因为条件 1,很大程度上是因为 Ubuntu 只提供了 1GB 的交换空间, SwapUsedLimit 太容易达到 90%。
基于进程的终止条件,Nick 提出了一些改动的思路,比如改变 systemd-oomd 计算 / 触发内存值的方式,又或是增加 SwapUsedLimit 的值,因为 1 GB 实在太少了。
社区现已针对该问题启动了一个 Ubuntu 开发线程,征求更广泛的 Ubuntu 社区反馈,该问题应该会在 22.04.1 更新中得到解决。
相关链接
本站新闻禁止未经授权转载,违者依法追究相关法律责任。授权请联系:oscbianji#oschina.cn
本文标题:Ubuntu 正在处理 22.04 版本频繁杀死应用的问题
原文地址:https://www.oschina.net/news/199125/ubuntu-22-04-systemd-oom-killing-apps
相关文章
- [内核]Takslet和Workqueue的应用场景
- 干货:调度算法的价值与阿里的应用实践
- 【学习总结】快速上手Linux玩转典型应用-第4章-准备工作
- docker 应用篇————日志、元数据、进程查看[五]
- 使用SAP Cloud Platform fullstack WebIDE创建SAP UI5应用并部署
- PHP CLI模式下的多进程应用
- 关于 SAP Spartacus Shell App 客户应用的调试
- Qt进程和线程之四:线程实际应用
- 【Android 逆向】修改运行中的 Android 进程的内存数据 ( Android 命令行中获取要调试的应用进程的 PID | 进程注入调试进程内存的 so 库 )
- 【Android 逆向】应用数据目录 ( files 数据目录 | lib 应用自带 so 动态库目录 | databases sqlite3 数据库目录 | cache 缓存目录 )
- 【Android 逆向】Android 系统文件分析 ( 根目录下的目录和文件 | /data/ 应用和用户数据目录 | /mnt/ 挂载其它设备目录 )
- 【Android 插件化】Hook 插件化框架 ( 从 Hook 应用角度分析 Activity 启动流程 二 | AMS 进程相关源码 | 主进程相关源码 )
- build path--use as source folder 应用
- 时间重分配多同步挤压变换在旋转机械轴承故障诊断中的应用(Matlab代码实现)