在 Linux 系统中,查看内存使用情况的常用命令如下,涵盖不同维度的信息展示:
free
- 查看内存和交换分区使用情况free -h # 人类可读格式(自动转换单位)
free -m # 以 MB 为单位显示
free -s 5 # 每 5 秒刷新一次
输出关键字段说明:
- total
:总内存。
- used
:已用内存(含缓存/缓冲区)。
- free
:完全未使用的内存。
- shared
/buff/cache
:缓存和缓冲区占用的内存。
- available
:实际可用的内存(估算值)。
top
/ htop
- 动态查看进程及内存占用top # 实时监控(按 `q` 退出)
htop # 增强版(需安装,支持交互式操作)
关键信息:
- %MEM
:进程占用物理内存百分比。
- RES
:进程实际使用的物理内存(单位 KB)。
- VIRT
:进程使用的虚拟内存总量。
vmstat
- 查看虚拟内存统计vmstat -s # 显示详细内存统计(包括页、交换分区等)
vmstat 2 5 # 每 2 秒刷新一次,共 5 次
输出字段:
- si
(swap in)、so
(swap out):交换分区活动。
- free
:空闲内存。
- buff
/cache
:缓存和缓冲区用量。
/proc/meminfo
- 详细内存信息文件cat /proc/meminfo # 显示所有内存细节
关键字段:
- MemTotal
、MemFree
、MemAvailable
。
- SwapTotal
、SwapFree
。
- Buffers
、Cached
、Slab
。
ps
- 查看特定进程内存占用ps aux --sort=-%mem | head -10 # 按内存使用排序显示前 10 个进程
ps -p <PID> -o %mem,rss # 查看指定进程的内存占用和 RSS
glances
- 综合监控工具(需安装)glances # 图形化界面显示 CPU、内存、磁盘等
smem
- 按用户或进程统计内存(需安装)smem -u # 按用户汇总内存使用
smem -p # 按进程显示比例
sar
- 历史内存监控(需安装 sysstat
)sar -r 1 3 # 查看实时内存使用(每秒 1 次,共 3 次)
sar -r -f /var/log/sa/saXX # 查看历史数据(XX 为日期)
free -h
top
或 ps aux --sort=-%mem
vmstat -s
结合 /proc/meminfo
sar -r
根据需求选择命令,多数场景下 free
和 top
已能满足基本需求。