我使用 Ubuntu 20.04,内存为 16 GB,交换设置设为 10。过去这种方法效果很好,但上个月的某个时候,我觉得内存处理方式发生了巨大变化。最近,如果机器一段时间未使用,即使内存中有足够的空间,它也会开始非常频繁地使用交换空间。结果是,如果我让机器运行几个程序一夜,第二天早上我就不得不花几分钟等待它从交换空间中检索正在运行的程序和桌面环境,尽管有足够的可用内存,但它们还是被不必要地存放在那里。这种行为是从哪里来的?我该如何将其修改回以前的样子?
编辑:按照@rfm的建议,我编写了一个小脚本,每 15 分钟检查一次 memfree,同时记录 px 的输出。不幸的是,这并没有揭示太多信息。很明显,几个小时后内存就满了,但没有正在运行的程序使用了那么多内存,相反,meminfo 的“缓存”标题显示了内存的增加,从一小部分内存开始,然后增加到整个内存量。遗憾的是,我仍然不知道为什么会这样。