Linux 怎么通过 free 命令排查内存缓冲区与缓存占用

冷漠man

冷漠man

2026-08-02

306人浏览

原创

buff/cache 是内核管理的可回收内存,包含 buffers(待写入磁盘的数据)和 cache(已读取的文件页),其占用高不等于内存不足;判断是否异常应以 available 是否充足为准,而非 buff/cache 绝对值大小。

linux 怎么通过 free 命令排查内存缓冲区与缓存占用

直接看 buff/cache 这一列,再结合 available 和实际使用场景,就能判断缓冲区与缓存是否异常占用内存。

buff/cache 到底占了什么内存?

这一列是 Buffers(缓冲区)Cache(页面缓存) 的总和:

  • Buffers:临时存放即将写入磁盘的数据(比如刚被修改但还没刷盘的文件块),属于“待出库”状态;
  • Cache:已从磁盘读取、暂存在内存中供快速复用的数据(比如频繁访问的日志、程序代码、配置文件),属于“已入库可调用”状态。

它们不是“被程序长期霸占”的内存,而是内核主动管理的可回收资源——只要新进程申请内存,系统会优先释放这部分空间。

PyCharm 2026.2.0.1 Linux版
PyCharm 2026.2.0.1 Linux版

PyCharm 2026.2.0.1 Linux版提供 JetBrains 官方 2026.2.0.1 版本安装包,适合需要指定 PyCharm 版本进行 Python 项目开发、运行和调试的用户。

下载

怎么判断 buff/cache 是否异常?

关键不看绝对值大小,而看它是否影响了真实可用性:

  • 如果 available ≥ total × 10%(例如总内存16GB,available ≥ 1.6GB),说明缓存虽多但没挤占可用空间,属正常;
  • 如果 available 接近 0,同时 buff/cache 占比极高(比如 total 16GB,buff/cache 12GB,available 仅 200MB),说明缓存已无法有效回收,可能因脏页积压、共享内存段锁定或 ramfs/tmpfs 占用导致;
  • 注意 shared 列——若该值偏高(如几百MB以上),可能是 tmpfs 挂载(/dev/shm)或大量共享内存段未释放,这类内存通常不能被常规 cache 回收机制清理。

如何定位是谁在大量使用 cache?

free 本身不显示具体来源,但可配合其他命令缩小范围:

  • 查大文件读写:用 iotop -o 看哪些进程正在高频读写磁盘;
  • 查 pagecache 分布:运行 cat /proc/meminfo | grep -E "Cached|SReclaimable|Shmem",关注 Cached(主 cache)、SReclaimable(可回收的 slab 缓存)、Shmem(共享内存占用);
  • 查 tmpfs 使用:执行 df -h -t tmpfs,确认 /dev/shm 或自定义 tmpfs 挂载点是否占用了大量内存。

要不要手动清理 buff/cache?

一般不需要,也不推荐随意清理。但若确认是临时性缓存堆积且无业务影响,可谨慎操作:

  • 仅清 pagecache:echo 1 > /proc/sys/vm/drop_caches
  • 清 pagecache + dentries + inodes:echo 3 > /proc/sys/vm/drop_caches
  • ⚠️ 注意:该操作需 root 权限,且会短暂增加 I/O 压力,生产环境建议在低峰期执行,并观察 available 是否回升、业务是否抖动。

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

linux

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
磁盘配额是什么
磁盘配额是什么

磁盘配额是计算机中指定磁盘的储存限制,就是管理员可以为用户所能使用的磁盘空间进行配额限制,每一用户只能使用最大配额范围内的磁盘空间。php中文网为大家提供各种磁盘配额相关的内容,教程,供大家免费下载安装。

2023.06.21

2670

4

如何安装LINUX
如何安装LINUX

本站专题提供如何安装LINUX的相关教程文章,还有相关的下载、课程,大家可以免费体验。

2023.06.29

1649

10

linux find
linux find

find是linux命令,它将档案系统内符合 expression 的档案列出来。可以指要档案的名称、类别、时间、大小、权限等不同资讯的组合,只有完全相符的才会被列出来。find根据下列规则判断 path 和 expression,在命令列上第一个 - ( ) , ! 之前的部分为 path,之后的是 expression。还有指DOS 命令 find,Excel 函数 find等。本站专题提供linux find相关教程文章,还有相关

2023.06.30

1293

5

linux修改文件名
linux修改文件名

本专题为大家提供linux修改文件名相关的文章,这些文章可以帮助用户快速轻松地完成文件名的修改工作,大家可以免费体验。

2023.07.05

2654

7

linux系统安装教程
linux系统安装教程

linux系统是一种可以免费使用,自由传播,多用户、多任务、多线程、多CPU的操作系统。本专题提供linux系统安装教程相关的文章,大家可以免费体验。

2023.07.06

2395

7

linux查看文件夹大小
linux查看文件夹大小

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。linux怎么查看文件夹大小呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.20

1658

8

linux查看ip命令
linux查看ip命令

本专题为大家提供linux查看ip命令相关文章内容,感兴趣的朋友可以免费下载体验试试。

2023.07.20

1231

4

linux查看cpu使用率
linux查看cpu使用率

在linux的系统维护中,可能需要经常查看cpu使用率,分析系统整体的运行情况。本专题为大家带来了linux查看cpu使用率的相关文章,感兴趣的朋友千万不要错过了。

2023.07.25

1421

6

linux查找文件命令
linux查找文件命令

Linux是一种自由和开放源码的类Unix操作系统,存在着许多不同的Linux版本,但它们都使用了Linux内核。Linux可安装在各种计算机硬件设备中,比如手机、平板电脑、路由器、视频游戏控制台、台式计算机、大型机和超级计算机。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

2023.07.31

210

3

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
phpMyAdmin 安装文档
phpMyAdmin 安装文档

共0课时 | 0人学习

Apifox下载与安装手册
Apifox下载与安装手册

共0课时 | 0人学习

安装 Xdebug 并配置 phpstorm
安装 Xdebug 并配置 phpstorm

共1课时 | 127人学习