【问题标题】:Cached memory on unix machine continuously growsunix 机器上的缓存内存不断增长
【发布时间】:2014-07-13 16:12:53
【问题描述】:

在我的 Ubuntu 12 vps 上,我正在运行一个完整的比特币节点。当我第一次启动它时,它使用了大约 700mb 的内存。如果我 24 小时后回来 (free -m) 将如下所示:

  total used free shared buffers cached

  4002  3881 120    0      32     2635

-/+ 缓冲区/缓存:1214 2787

交换:255 0 255

但是如果我使用

清除“缓存”

echo 3 > /proc/sys/vm/drop_caches

然后再次执行 free -m:

 total used free shared buffers cached

 4002  1260 2742   0      1      88

-/+ 缓冲区/缓存:1170 2831

交换:255 0 255

可以看到缓存列已清除,并且我的可用内存比以前多得多。

我有一些问题:

这个缓存的数字是什么? 我猜是为了更快地访问磁盘而缓存文件吗?

可以让它增长并使用我所有的空闲内存吗?

其他需要内存的进程能否收回缓存的内存?

如果不是,我是否应该使用之前显示的 echo3 命令定期清除它?

【问题讨论】:

标签: unix ubuntu memory


【解决方案1】:

Linux 试图更有效地利用系统资源。 Linux缓存数据以减少数量。 io 操作,从而加快系统速度。有关数据的元数据存储在缓冲区中,实际数据将存储在缓存中。

当您清除缓存时,使用缓存的进程将丢失数据,因此您必须运行 sync 在清除缓存之前,系统会将数据复制到辅助存储,从而减少错误。

【讨论】:

    猜你喜欢
    • 2013-10-20
    • 2016-02-24
    • 1970-01-01
    • 2014-11-23
    • 2014-02-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-09
    相关资源
    最近更新 更多