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

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

记忆

但是,如果我可以在此之后禁用此进程/清理缓存,我认为我的系统将在某种程度上加速。 如果我在这里错了,请纠正我。

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

漂白剂记忆

这里已经发布了类似的问题: 如何禁用预取缓存? ,但它是关于Ubuntu服务器,并且答案涉及手动设置等。

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

注意: 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分钟清洁一次。 如果您确实要将第一个参数更改为**/5而不是*/15 可以设置为1或5分钟

一个内核知道真正的空闲RAM,除了缓存

Geirha的回答解释了细节,但简而言之,你可以得到免费的兆字节数:

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

在我的2GB命令行服务器上返回一个非常健康的1835

救命! Linux吃了我的RAM!

http://www.linuxatemyram.com在FAQ表格中精美地解释了这一点,其基本要素是:

这是怎么回事?

Linux正在借用未使用的内存来进行磁盘缓存。 这让你看起来内存不足,但你不是! 一切都好!

它为什么这样做?

磁盘缓存使系统更快! 除了令人困惑的新手之外,没有任何缺点。 它永远不会以任何方式远离应用程序!

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

如果您的应用程序需要更多内存,它们只会收回磁盘缓存所借用的块。 磁盘缓存始终可以立即返回给应用程序! 你的公羊不低!

我如何看到我真正拥有多少免费ram?

要查看应用程序在没有交换的情况下可以使用多少ram,请运行free -m并查看“available”列:

 $ free -m
              总可用的免费共享缓存/缓存
记忆:1504 1491 13 0 855 792
交换:2047 6 2041

这是你在mebibytes中的答案。


来源:如上所述,优秀的http://www.linuxatemyram.com – 请访问以获取更多信息。

检查当前的内存使用情况

  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作业来安排上述命令以特定时间间隔运行。

正如我们所看到的那样,兑现并不是一个问题,只要它引起交换,你可以通过管理vm.swappiness值来避免。 也许那就是你在寻找的东西: 为什么是交换使用 – 即使 – 我有充足的自由 – 公羊