5

Ubuntu 正在处理 22.04 版本频繁杀死应用的问题

 2 years ago
source link: https://os.51cto.com/article/711269.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

Ubuntu 正在处理 22.04 版本频繁杀死应用的问题-51CTO.COM

5916fb164111dc1cf87edbfbe1efaf36.png
Ubuntu 正在处理 22.04 版本频繁杀死应用的问题
作者:罗奇奇 2022-06-10 09:39:16
Ubuntu 22.04 LTS 版本带来一项新功能:默认启用 systemd-oomd 作为内存不足时的守护进程,它可以在内存高压的情况下干掉一部分进程。

Ubuntu 22.04 LTS 版本带来一项新功能:默认启用 systemd-oomd 作为内存不足时的守护进程,它可以在内存高压的情况下干掉一部分进程。

然而,该 OOMD 功能似乎杀红了眼,有时候即使用户没有感到任何内存压力,它也会莫名其妙地终止正在运行的程序,比如 Firefox、Chrome 或 Visual Studio Code,体验极差的用户在 Ubuntu 社区邮件列表中大量留言吐槽。

一位沮丧的用户写道:

在杀死应用程序之前应该有一个警告,以便有机会保存应用程序数据。杀死应用程序后至少应该有道歉和解释。当前的行为给人的印象是 Ubuntu 22.04 使用起来不可靠且不安全,这对于 LTS 版本来说是个大问题。

d578c2093bdd6c782b1509adbf1c0d4511ca10.jpg

随后,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 更新中得到解决。

本文转自OSCHINA

本文标题:Ubuntu 正在处理 22.04 版本频繁杀死应用的问题

本文地址:https://www.oschina.net/news/199125/ubuntu-22-04-systemd-oom-killing-apps


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK