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的内存占用。

free -g cached满了,怎么释放buff/cache的内存占用。

buff占用内存高

centos系统内存 buff/cache 占用过高

Linux [buff/cache]内存缓存占用过高分析和优化