buff/cache占用太多内存,如何释放内存?
Posted DATA数据猿
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了buff/cache占用太多内存,如何释放内存?相关的知识,希望对你有一定的参考价值。
buff/cache占用太多内存,如何释放内存?
一、查看free内存
根据free -h
命令,可以看到内存共有7.6G
,用了623M
,但是free只有2.7G
。通过观察可以发现buff/cache占用了4.3G。
buff/cache是由于系统读写导致的文件缓存,没有及时释放。
[root@zxy_master ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 623M 2.7G 15M 4.3G 6.7G
Swap: 0B 0B 0B
二、buff/cache
buff是Buffer Cache,即缓冲区缓存。主要是针对块设备的缓存。
cache是Page Cache,即页面缓存。主要用来作为文件系统上的文件数据的缓存来用,尤其是针对当进程对文件read/write操作的时候。
Linux缓存回收机制是,Linux内核会在内存将要耗尽的时候,触发内存回收的工作,以便释放出内存给进程是哟个。一般情况下,释放的这部分内存都是来自于buff/cache部分。
三、手动释放buff/cache
# 清除页面缓存
[root@zxy_master ~]# echo 1 > /proc/sys/vm/drop_caches
# 清除回收slab分配中的对象(包括目录项和inode缓存)
[root@zxy_master ~]# echo 2 > /proc/sys/vm/drop_caches
# 清除页面缓存和slab分配中
[root@zxy_master ~]# echo 3 > /proc/sys/vm/drop_caches
# 释放后内存,可以看到现在可用内存有6.9G
[root@zxy_master ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 627M 6.9G 15M 121M 6.8G
Swap: 0B 0B 0B
以上是关于buff/cache占用太多内存,如何释放内存?的主要内容,如果未能解决你的问题,请参考以下文章
free -g cached满了,怎么释放buff/cache的内存占用。
free -g cached满了,怎么释放buff/cache的内存占用。