在我的Ubuntu 12 vps上,我正在运行一个完整的比特币节点。当我第一次启动它时,它使用大约700mb的内存。如果我24小时后回来(free -m)会看起来像这样:
total used free shared buffers cached
4002 3881 120 0 32 2635
- / + buffers / cache:1214 2787
交换:255 0 255
但是如果我使用
清除“缓存”echo 3>的/ proc / SYS / VM / drop_caches
然后再次释放-m:
total used free shared buffers cached
4002 1260 2742 0 1 88
- / + buffers / cache:1170 2831
交换:255 0 255
可以看到缓存的列清除,并且我的内存比以前更多。
我有一些问题:
这个缓存的号码是什么? 我猜是它的文件是否被缓存以便更快地访问磁盘?
可以让它成长并使用我所有的空闲记忆吗?
其他需要内存的进程是否能够驱逐缓存内存?
如果没有,我应该使用之前显示的echo3命令定期清除吗?
答案 0 :(得分:1)
Linux尝试更有效地利用系统资源。 Linux缓存数据以减少数量。 io操作,从而加速系统。有关数据的元数据存储在缓冲区中,实际数据将存储在缓存中。
当您清除缓存时,使用缓存的进程将丢失数据,因此您必须运行
sync
在清除缓存之前,系统会将数据复制到辅助存储,从而减少错误。