如何修复 Ubuntu 20.04.3 LTS 上的高内存使用率?

如何修复 Ubuntu 20.04.3 LTS 上的高内存使用率?

Ubuntu 20.04.3 LTS 占用大量内存(12GB RAM 中占用 10.1GB)。RAM 会随着时间的推移而填满,即使我只使用 2 个应用程序,RAM 也会达到危险的高使用率。

我尝试遵循论坛上发布的有关类似问题的其他建议。我运行了htoptop但它们没有返回有用的信息,即它显示 Chrome 和 Discord 使用了最多的 RAM - 各自只有 2-4%。我读到过 Java、MySQL、Apache 通常是 RAM 使用率高的罪魁祸首,但 Java 甚至没有运行,列出的其他进程仅使用了 0.1% 的 RAM。

我注意到的另一件事是,关闭 Chrome 后,内存使用量立即从 10.1GB 降至仅 1.7-2GB。我不明白为什么,因为根据htop,Chrome 仅使用了 2% 左右的内存。

2-4% 不应该占用整个内存,因此我运行free -m后发现buff/cache使用率shared非常高 -分别为 8.8GB 和 7.2GB。这些是什么?为什么它们占用这么多内存?使用过程中系统冻结并且运行非常缓慢。CPU 使用率也不是很高 - 偶尔达到最高 22%。

这是我的free -m结果

免费-m

打开系统监视器时,

系统监视器

我的htoptop结果分别是

顶部

顶部

如前所述,我正在运行 Ubuntu 20.04.3 LTS。内核版本是5.11.0-41-generic

请帮忙。我的电脑越来越难用了。

答案1

将@Devvrath 的评论复制到答案中,因为它已经有 3 年了并且尚未转换。

@Devvrath 已安装了该preload软件包,卸载该软件包后问题就消失了。

preload是一个守护进程,用于监视/分析用户运行的应用程序,并尝试将数据保存在缓存中以改善这些应用程序的启动时间。

预加载记录 (重点是我的):

内存使用公式的默认值为:

最大值(0,-10% × model.memtotal + 100% × model.memfree)+ 30% × model.memcached

这实质上意味着:使用除总内存的百分之十以外的所有可用内存,并且有 30% 的内存已用于缓存。当系统处于稳定状态时,可用的空闲内存很少,因为内核将大部分空闲内存用于缓存。另一方面,在启动时,缓存内存很少,而空闲内存很多。鉴于此,model.memfree 和 model.memcached 控件可以相当独立地调整启动过程中和稳定状态下预加载的积极性。

正如所指出的这个答案的一个潜在缺点preload是,它消耗的 RAM 会占用“未使用”RAM 池中的部分,而内核原本可以使用这些 RAM 来缓存。根据您的具体情况/使用模式(以及preload的配置参数的调整),preload可能会提高或损害性能。

相关内容