当前位置: 首页>>技术问答>>正文


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

, , , , ,

问题描述

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

software-recommendation,kernel,bash,memory,cache,ubuntu

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

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

software-recommendation,kernel,bash,memory,cache,ubuntu

这里已经发布了一个类似的问题:How can I disable the prefetch cache?,但它是关于Ubuntu Server的,还有答案涉及手动设置等。

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

最佳解决方案

Note: Linux is NOT “eating” your RAM! Please take a look at Geirha’s excellent answer below to understand why…

在上面的注释之后,如果您仍然觉得”cleaning”缓存可以提供帮助,您当然可以尝试:它是来自终端的one-liner:

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

没有简单的方法可以禁用缓存,但是如果你想要的话,你可以通过每分钟清理它来达到同样的效果:

  • 使它成为cron-job

  • 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!

www.linuxatemyram.com以FAQ形式精美地解释了这一点,其基本要素是:

What’s going on?

Linux is borrowing unused memory for disk caching. This makes it looks like you are low on memory, but you are not! Everything is fine!

Why is it doing this?

Disk caching makes the system much faster! There are no downsides, except for confusing newbies. It does not take memory away from applications in any way, ever!

What if I want to run more applications?

If your applications want more memory, they just take back a chunk that the disk cache borrowed. Disk cache can always be given back to applications immediately! You are not low on ram!

How do I see how much free ram I really have?

To see how much ram your applications could use without swapping, run free -m and look at the “available” column:

 $ free -m               total        used        free      shared  buff/cache   available Mem:           1504        1491          13           0         855      792 Swap:          2047           6        2041 

This is your answer in mebibytes.


来源:如上所述,优秀的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作业来安排上述命令以特定时间间隔运行。

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/1803.html,未经允许,请勿转载。