unix - unix 机器上的缓存内存不断增长

标签 unix ubuntu memory

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

  total used free shared buffers cached

  4002  3881 120    0      32     2635

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

交换:255 0 255

但是,如果我使用清除“缓存”

回声 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 命令定期清除它?

最佳答案

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

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

关于unix - unix 机器上的缓存内存不断增长,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24724668/

相关文章:

postgresql - 无法从终端在 Psql 中执行命令

shell - 如何在 unix shell 中使用数组?

ubuntu - 使用 Bazel 构建 SyntaxNet 时出错

python - 使用 Python 2.7.6 在 Ubuntu 14.04 上安装 scipy 时出错

c - fgets() 读取什么?

c - 如何仅使用系统调用来倒回文件描述符?

php - 在 Ubuntu 上安装 Laravel/Homestead

numpy - numpy 数组的内存映射文件

ios - 检查用户手机上是否有足够的可用空间来录制视频

android - 在android应用程序中显示cpu,内存信息