在Linux系统中,查看内存使用情况是运维和性能分析的基础操作,系统提供了多个不同的命令和途径来获取内存相关的数据,每个工具的输出维度和适用场景各有不同。
free命令
free是最常用的内存查看命令,能够快速展示系统内存的总量、已使用量、空闲量等核心信息,默认输出单位是KB,也可以通过参数调整显示单位。
常用参数说明:
- -h:以人类可读的单位(G、M、K)显示结果
- -m:以MB为单位显示结果
- -g:以GB为单位显示结果
- -s 间隔秒数:每隔指定秒数刷新一次结果
使用示例:
# 以人类可读格式查看内存使用情况 free -h
输出结果中需要关注的核心指标:
- total:内存总容量
- used:已使用的内存(不包含buff/cache)
- free:完全空闲的内存
- shared:共享内存用量
- buff/cache:用于缓冲和缓存的内存,这部分内存在需要时可以被释放
- available:实际可用的内存,是判断内存是否充足的核心指标
top命令
top是动态进程监控工具,除了可以查看进程的资源占用情况,也能在顶部区域看到系统的内存整体使用状态,适合在排查进程内存占用问题时使用。
启动top后,顶部第四、第五行会展示内存和交换分区的信息,内容和free命令的输出类似,同时可以实时看到内存使用的变化情况。
常用操作:
- 按M:按照内存使用量对进程排序,快速定位内存占用高的进程
- 按E:切换顶部内存区域的显示单位
- 按e:切换进程列表的内存显示单位
使用示例:
# 启动top工具 top
vmstat命令
vmstat可以展示系统的虚拟内存、进程、CPU等整体运行状态,其中也包含内存相关的统计信息,适合观察内存的变化趋势。
常用参数:
- vmstat 间隔秒数 次数:每隔指定秒数输出一次结果,总共输出指定次数
使用示例:
# 每隔2秒输出一次系统状态,总共输出5次 vmstat 2 5
输出结果中和内存相关的列:
- swpd:交换分区已使用量
- free:空闲内存量
- buff:缓冲内存量
- cache:缓存内存量
读取/proc/meminfo文件
/proc/meminfo是内核提供的内存信息接口文件,里面包含了最详细的内存相关参数,上面的命令本质上也是读取这个文件的内容进行格式化展示。
查看方式:
# 查看内存信息文件内容 cat /proc/meminfo
这个文件包含了几十项内存相关的参数,比如MemTotal表示总内存,MemFree表示空闲内存,Buffers和Cached分别对应缓冲和缓存内存,SwapTotal和SwapFree对应交换分区的总容量和空闲容量,适合需要获取更详细内存参数的场景。
不同命令的适用场景
| 命令 | 适用场景 |
|---|---|
| free | 快速查看内存整体使用概况,判断内存是否充足 |
| top | 动态监控内存变化,定位内存占用高的进程 |
| vmstat | 观察内存、CPU等系统资源的整体变化趋势 |
| cat /proc/meminfo | 获取最详细的内存参数,用于深度分析 |
在实际使用中,可以根据需求选择合适的命令,比如日常快速检查用free -h,排查进程内存问题用top,需要详细参数时读取/proc/meminfo文件即可。
freetopvmstatcat_/proc/meminfo修改时间:2026-07-21 12:12:32