如何清理或禁用内存缓存?

如何清理或禁用内存缓存?

系统启动后,几分钟内我的内存缓存就填满了,它开始使用交换。这是 /proc/meminfo 的屏幕截图。

记忆

但是,如果我可以禁用此进程/在此之后清理一次缓存,我认为我的系统会在一定程度上加快速度。如果我错了,请纠正我。

我也尝试过 Bleachbit 内存清理,但它似乎无法正确清理内存缓存。此外,该功能仍处于试验阶段。

漂白记忆

这里已经有一个类似的问题:我如何禁用预取缓存?,但它涉及 Ubuntu Server,并且答案还涉及手动设置等。

所以,我想知道是否有一些软件可以禁用/启用 Ubuntu 12.04 的内存缓存。

答案1

笔记:Linux 不会“吃掉”你的 RAM!请查看 Geirha 的很好的答案下面了解为什么...

在上述说明之后,如果您仍然觉得“清理”缓存可能会有帮助,那么您当然可以尝试:它是终端中的一行代码:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

没有简单的方法禁用缓存,但你可以通过尽可能频繁地清理缓存来达到同样的效果每一分钟, 如果你想:

  • 使其成为计划任务

  • Alt-F2,输入gksudo gedit /etc/crontab,然后在底部附近添加以下行:

    */15 * * * * root sync && echo 3 > /proc/sys/vm/drop_caches

  • 每 15 分钟清洁一次。您可以设置为 1 分钟或 5 分钟如果你真的想 通过将第一个参数更改为**/5代替*/15

一行代码即可知道除缓存之外的实际可用 RAM

Geirha 的回答解释了细节,但简而言之,你可以通过以下方式获得可用的兆字节数:

free -m | sed -n -e '3p' | grep -Po "\d+$"

在我的 2GB 命令行服务器上返回极其健康1835

答案2

救命!Linux 占用了我的内存!

www.linuxatemyram.com以常见问题解答的形式很好地解释了这一点,要点如下:

这是怎么回事?

Linux 正在借用未使用的内存进行磁盘缓存。这看起来好像您的内存不足,但实际上并非如此!一切都很好!

它为什么会这样做?

磁盘缓存使系统运行速度更快!除了让新手感到困惑之外,没有任何缺点。它永远不会以任何方式占用应用程序的内存!

如果我想运行更多应用程序该怎么办?

如果您的应用程序需要更多内存,它们只需收回磁盘缓存借用的一块内存即可。磁盘缓存始终可以立即归还给应用程序!您的内存并不短缺!

我如何知道我实际有多少可用内存?

要查看您的应用程序在不进行交换的情况下可以使用多少内存,请运行 free -m 并查看“可用”列:

$ 免费-m
              总计已用免费共享 buff/缓存可用
内存:1504 1491 13 0 855      792
交换:2047 6 2041
这是您的答案(以兆字节为单位)。


来源:如上所述,优秀的www.linuxatemyram.com-- 请访问以了解更多信息。

答案3

检查当前内存使用情况

 watch -n 1 free -m

或者

 watch -n 1 cat /proc/meminfo

释放空间

 sudo sysctl -w vm.drop_caches=3

笔记:此操作不会使您的系统运行得更快,也不会影响其稳定性和性能,它只会清理 Linux 内核在缓存上使用的内存。

或者

 sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

笔记:您可以使用 cron 作业来安排上述命令在特定的时间间隔运行。

答案4

正如我们所看到的,兑现不是一个问题,只是如果它导致交换,你可以通过管理vm.swappiness值。也许这就是你要找的: 为什么我有很多可用内存,但还是使用交换空间

相关内容