在我的 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/