free 命令是 linux 下查看内存使用状况最常用工具,重点关注 available 列(当前可立即分配给新进程的内存估算值),而非 used 或 free;used 高不意味内存不足,因 linux 会将空闲内存用作 buff/cache 以提升性能。

free 命令是 Linux 下最常用、最直接查看内存使用状况的工具,它能快速告诉你系统当前有多少物理内存、多少被使用、多少空闲,以及缓存和缓冲区占用了多少空间。
理解 free 输出的关键列
运行 free -h(推荐加 -h 参数,以人类可读单位如 GiB/MiB 显示)后,重点关注以下几列:
CRM集成版基本功能: 内部邮件,短信息,个人文件柜,日程安排,名片录,网络硬盘,个人网址收藏,个人使用情况统计分析。 新闻管理,公告管理,日程安排查询,工作日志查询,公共网址管理,人事档案管理,组织机构信息查询。 企业文档管理,规章制度,电子刊物。 人力资源管理,档案管理,培训管理,奖惩管理,招聘信息,劳动合同 系统单位信息管理,部门信息管理,用户管理,用户角色设
- total:系统总物理内存容量
- used:当前被内核、进程、缓存等占用的内存总量
- free:完全未被使用的内存(通常非常小,Linux 会尽量利用空闲内存做缓存)
- shared:被 tmpfs 或 shm 等共享内存机制使用的内存
- buff/cache:内核用于文件缓存(page cache)和块设备缓冲(buffer cache)的内存 —— 这部分在需要时可被快速回收
- available:最关键的指标!表示在不触发 OOM 或大量换页的前提下,当前可立即分配给新进程的内存估算值(含可回收的 buff/cache)
为什么 used 高 ≠ 内存不足?
Linux 的内存管理策略是“尽可能用满”,把空闲内存转为 buff/cache 能显著提升文件读写性能。因此:
– 即使 used 接近 total,只要 available 仍充足,系统就运行正常;
– 真正值得关注的是 available 持续接近 0,或伴随频繁 swap 使用(看 Swap 行的 used 列);
– 若 available 很低,同时 buff/cache 却很高,说明系统可能因某些原因无法及时回收缓存(如脏页积压、IO 堵塞),需进一步排查。
实用技巧与常见误区
- 用 free -h -w 可分离显示 buff 和 cache(旧版内核支持,新版默认合并)
- 加 -c N(如 free -h -c 5)可连续刷新 5 次,观察内存变化趋势
- 不要只看第一行 Mem,务必检查第二行 Swap —— 如果 Swap used > 0,且 available 持续紧张,说明物理内存确实吃紧
- “free” 列数值极小是正常现象,不代表问题;真正反映可用性的,是 “available” 列
- 若怀疑内存泄漏,可配合 ps aux --sort=-%mem | head -10 查看内存占用最高的进程
配合其他命令交叉验证
free 提供的是快照式概览,深入分析还需结合:
- cat /proc/meminfo:更详细的内存统计项,如 SReclaimable(可回收的 slab 缓存)、PageTables(页表开销)等
- vmstat 1:观察 si/so(swap in/out)、bi/bo(块设备 IO)、以及内存换页活动
- slabtop:定位内核 slab 分配器中哪些对象占用了大量内存(如 dentry、inode)
- smem -w:按进程维度统计实际物理内存占用(RSS + PSS),比 ps 更准确反映共享内存分摊









