我知道这是一个蹩脚的问题,但我想了解为什么 CentOS 在某些进程停止时会消耗我的物理内存。假设我打开了一个 10GB 的文件,那么当我完成该过程并关闭该文件时,它会消耗 10GB 的 ram 和缓冲区,那么 CentOS 仍然保留我的 10GB 的 ram。
当我运行free
命令时,它会提供以下详细信息:
11.4 GB are used
in buffers: 6336
in cached: 49168
-/+ buffers/cache: 11.4GB used
当我尝试使用以下解决方案释放内存时:
设置 /proc/sys/vm/drop_caches 以清除缓存
-/+ 缓冲区/高速缓存:仍保留 11.4 GB。
答案1
首先,除非您有特定要求,否则您不需要自己释放任何缓冲区或缓存。 Linux保存缓存是为了提高内存访问的性能。缓冲区只是临时位置,缓存和缓冲区都会根据 Linux 正在执行的任务而不断变化。
有一个链接很好地描述了这些字段http://www.linuxnix.com/2013/05/find-ram-size-in-linuxunix.html
更新新链接: https://www.linuxnix.com/find-ram-size-in-linuxunix/
如果链接将来不起作用,这里就不再解释了。下面是输出free -m
total used free shared buffers cached
Mem: 7753 2765 4987 0 24 570
-/+ buffers/cache: 2171 5582
Swap: 8191 0 8191
-/+ 在第二行:
Total used RAM is (2765) - (24 + 570) = 2171 [ - in the second line]
Total Free RAM is (7753 - 2765) + (24 + 570 ) = 5582 [ + in the second line ]