linux禁用系统缓存,如何清理或禁用内存缓存?

问题描述

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

2576119f69d8fbc2aa212bb5db4f55c6.png

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

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

2ad07fdea061c267e957cda81bc57f23.png

这里已经发布了一个类似的问题: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作业来安排上述命令以特定时间间隔运行。

参考资料

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值