首页/系统/信创系统运维速查/free 内存视图与 available 含义
服务与运维65 条

free 内存视图与 available 含义

free -h 看内存总量与使用:buff/cache 是可回收缓存,判断压力看 available 而不是 free 本身;配合 swap 使用量与 OOM 日志综合判断。

信创系统运维速查系统更新于 2026-10-13

内存怎么看才不误判

内存视图最容易被误读的地方在于缓存:系统会把暂时不用的内存拿来做文件缓存,提高读写效率,需要时又能迅速还给应用,所以「空闲内存很小」本身并不代表内存不足。判断压力的正确落点是可用内存估算值——它是系统对新程序能拿到多少内存的估计,已经把这部分可回收缓存算进去了。真要下结论,还要结合交换分区的使用与换入换出活动,以及进程自身的常驻内存趋势一起看。

基本信息

所属procps 提供的查看工具,数据来自内核统计接口
关键指标总量、已用、空闲、缓存与可用估算
容量单位建议使用可读单位选项,避免按字节换算出错
交换分区查看使用量与换入换出活动
进程视角按常驻内存排序找占用头部
内核视角内核日志里可确认是否触发过内存不足终止

典型使用场景

  • 容量评估:为扩容决策提供内存使用基线
  • 性能排查:应用变慢时判断是否发生频繁换页
  • 内存增长定位:按进程常驻内存排序,观察头部进程趋势
  • 服务被终止复盘:确认是否由内存不足触发进程终止
  • 交付验收:核对内存与交换分区规划是否符合规范
  • 监控调优:确定告警阈值应基于可用内存而非空闲内存

常用命令

常用命令
free -h                       # 可读单位的内存视图
free -m                       # 以兆字节显示,便于换算
head -8 /proc/meminfo         # 内核统计原始数据
swapon --show                 # 查看交换分区使用情况
vmstat 1 3                    # 观察换入换出活动与运行队列
ps -eo pid,rss,comm --sort=-rss | head -10   # 常驻内存占用头部进程

输出列读法

列含义关注点
total总内存含被内核与保留部分占用
used已用计算口径已包含部分不可回收占用
free完全空闲数值小属正常,系统会用缓存填满
buff/cache可回收缓存压力出现时能释放给应用
available可用估算判断内存压力应看这一列
swap 使用量交换分区占用持续增长且伴随换页说明内存吃紧
缓存高不等于内存泄漏:这是系统主动利用空闲资源的表现,有真实需求时会自动让出。真正值得警惕的信号是可用内存估算持续走低、交换分区占用不断增长,以及换入换出活动频繁。
确认服务是否因内存不足被终止,要结合内核日志里的终止记录与进程内存排序一起判断:日志给结论,进程列表给嫌疑对象,两者对上才能确定是哪个进程撑满了内存。

易错点

  • 只看空闲内存就判断内存不足,忽略可回收缓存,白白扩容
  • 不关注交换分区的换入换出活动,内存压力已经很大却从数值上看不出来
  • 把缓存增长当成应用内存泄漏,误改了应用参数而不是排查真实占用
  • 不保留基线数据,问题出现时没有对照,无法判断是增长还是常态

数据来源与参考

  • man 1 free(procps)
  • 红帽性能调优指南(内存)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌