为什么我的内存中的缓存总是满的?

我有6GB内存,运行Ubuntu 11.10的i5 2.4GHZ处理器。 我分区我的HD,以便我有8GB交换。

当在线流式传输或在Chromium中打开几个选项卡时,我很快就会在缓存中有4GB内存。 我认为这会使我的笔记本变慢。 流式传输video时,几分钟后它会慢下来并绊倒/晃动。

问题是什么? 我怎么解决这个问题?

PS:最初我有4GB,最近升级到6GB,但我没有遇到重大变化。

PPS:终端中的free -g打印出来:

  total used free shared buffers cached Mem: 5 2 3 0 0 0 -/+ buffers/cache: 1 4 Swap: 8 0 8 

缓存数据是RAM 应该让事情变得更快,而不是更慢 – 当你有未使用的内存时,从磁盘中反复取出东西只是愚蠢的。 如果你正在进入交换空间,那将会达到性能。 您可以通过运行System Monitor轻松判断是否正在使用任何交换。 如果交换空间图在问题开始时没有爬升,那么问题与内存无关。

当然,当您流式传输video时,它会被缓存在内存中,但需要相当多的video来填充6Gb! 我希望下载这么多数据需要花费不到几分钟的时间,还有更多会导致问题!

你确定其他不是问题吗? 说,冷却也许吧? 与冷却系统相比,许多笔记本电脑的处理器超速。 这很好 – 它提供了高峰值性能,有利于突发流量,同时保持体积下降 – 但它不能长时间保持性能,然后才被迫拨回时钟速率或融化。 video可能是处理器密集型的,所以你永远不知道?

无论如何,你应该能够从内存使用情况中看出它是否在交换。 如果是,那就是软件问题,那些可以修复。 🙂

我有同样的问题,似乎缓存从未发布…一个例子是当我检查出一个存储库并最终得到4GB的缓存

例:

 $ free -m total used free shared buffers cached Mem: 7949 7425 523 0 112 4433 -/+ buffers/cache: 2879 5069 Swap: 7627 2 7625 

我所做的是运行下面的代码(注释只是让你知道发生了什么),你可以创建一个脚本,这样你就可以在需要时运行它:

 # To free pagecache: # echo 1 > /proc/sys/vm/drop_caches # To free dentries and inodes: # echo 2 > /proc/sys/vm/drop_caches # To free pagecache, dentries and inodes: # echo 3 > /proc/sys/vm/drop_caches sudo sync && sudo sysctl -w vm.drop_caches=3 

我运行上面的代码后:

 $ free -m total used free shared buffers cached Mem: 7949 2820 5129 0 2 407 -/+ buffers/cache: 2409 5539 Swap: 7627 2 7625 

我的建议是运行任何进程资源管理器(例如系统监视器)并检查消耗这么多内存的进程是什么。 将它发布在这里,我们会看看你是否可以关掉它。

PS。 好的,我现在明白了。 我打赌它的“插件容器”随着时间的推移而增长,因为它使用内存的方式。 我猜它是因为它是Gill Bates系统的一个端口;)。 杀死它不会有帮助(通过杀死它你会崩溃每个页面上的所有动画,主要是广告,但Youtubevideo)。 此外,Chromium本身喜欢随着时间膨胀,所以处理它的唯一方法可能是不时重新启动它。 看它是否有帮助……