上一篇
Linux内存使用如何查看?
- Linux
- 2025-06-11
- 4
使用
free -h
命令查看内存总量、已用量和空闲量,
top
或
htop
工具可动态监控内存占用详情及进程消耗。
一、基础命令:free
(实时内存概览)
命令与参数:
free -h # 人性化单位显示(KB/MB/GB) free -s 5 # 每5秒刷新一次
输出解读:
total used free shared buff/cache available
Mem: 7.7G 2.1G 1.2G 123M 4.4G 5.2G
Swap: 2.0G 0B 2.0G
- buff/cache:内核缓存(可被程序快速回收)
- available:系统可用内存(含缓存可回收部分)
- Swap使用:若持续过高,需优化物理内存
二、动态监控:top
与 htop
top
命令(进程级资源监控)
top # 运行后按 `M` 按内存排序
关键指标:
%MEM
:进程占用物理内存百分比VIRT
:虚拟内存总量(含共享库+Swap)RES
:实际物理内存使用量
htop
增强版(交互式视图)
htop # 需安装(sudo apt install htop)
优势:
- 颜色标记内存/CPU压力
- 鼠标支持横向滚动查看完整命令
- 直观树状结构展示进程层级
三、深度分析:/proc/meminfo
(内核级数据)
直接读取内核内存状态文件:
cat /proc/meminfo
核心参数:
| 参数 | 含义 |
|———————|————————–|
| MemTotal
| 总物理内存 |
| MemFree
| 完全未使用的内存 |
| Cached
| 页面缓存(可回收) |
| SwapCached
| Swap缓存 |
| Active
| 活跃内存(频繁访问) |
| Inactive
| 非活跃内存(可能被回收) |
适用于脚本开发或定制监控工具的数据源
四、综合工具:vmstat
(虚拟内存统计)
命令示例:
vmstat 2 10 # 每2秒采样1次,共10次
输出关键列:
procs -----------memory---------- ---swap--
r b swpd free buff cache si so
0 0 0 1234567 98765 765432 0 0
- swpd:已用Swap大小
- si/so:Swap换入/换出速度(>0 表示频繁交换)
- cache:页面缓存量
️ 五、图形化工具(适合桌面环境)
- GNOME System Monitor
- 路径:
Applications → System Tools → System Monitor
- 功能:实时图表展示内存/Swap使用趋势
- 路径:
- KSysGuard(KDE环境)
支持自定义传感器仪表盘
六、关键诊断场景
- 内存泄漏检测
- 组合命令:
watch -n 1 "free -h; echo; ps aux --sort=-%mem | head -n 5"
- 组合命令:
- Swap过度使用
- 优化方案:
- 增加物理内存
- 调整
swappiness
参数:sysctl vm.swappiness=10
(降低Swap倾向)
- 优化方案:
按需选择工具
场景 | 推荐工具 |
---|---|
快速概览 | free -h |
进程级内存分析 | top 或 htop |
内核级详细数据 | /proc/meminfo |
长期趋势与Swap监控 | vmstat |
桌面可视化 | GNOME/KDE工具 |
最佳实践:生产环境中建议结合
cron
定时任务记录free
或vmstat
数据,便于历史分析。
引用说明:
- 命令参数规范参考 Linux man-pages 项目(kernel.org官方文档)
- 内存管理原理依据 《Understanding the Linux Kernel》(O’Reilly)
- 数据指标定义遵循 procfs-5.10 标准(www.kernel.org/doc/html/latest/filesystems/proc.html)
通过上述工具组合,可精准掌握Linux内存状态,及时预防性能瓶颈。