如何清理或禁用内存缓存?
系统启动后,几分钟内我的内存缓存就会填满,并开始使用交换。 这是/ 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值来避免。 也许那就是你在寻找的东西: 为什么是交换使用 – 即使 – 我有充足的自由 – 公羊