Ubuntu 20.04.3 LTS 占用大量内存(12GB RAM 中占用 10.1GB)。RAM 会随着时间的推移而填满,即使我只使用 2 个应用程序,RAM 也会达到危险的高使用率。
我尝试遵循论坛上发布的有关类似问题的其他建议。我运行了htop
,top
但它们没有返回有用的信息,即它显示 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
结果
打开系统监视器时,
我的htop
和top
结果分别是
如前所述,我正在运行 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
可能会提高或损害性能。