上一篇
Linux内存如何实时监控?
- Linux
- 2025-06-10
- 3483
在Linux中查看内存使用情况,常用命令:,1.
free -h
:显示总内存、已用、空闲及缓冲/缓存内存(
-h
自动转换单位)。,2.
top
或
htop
:动态查看进程及整体内存占用(
htop
需安装)。,3.
vmstat -s
:以详细统计方式报告内存使用情况。,**关键指标**:重点关注
available
列(
free
命令),表示系统可用内存。
在Linux系统中,监控内存使用情况是系统管理和故障排查的核心任务,以下是专业且实用的方法,所有命令均通过实际环境验证(基于Ubuntu 22.04/CentOS 7+),确保准确性:
一、基础命令工具
free
命令(实时内存概览)
free -h
输出解析:
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
- 关键指标:
available
:系统可用内存(含缓存和缓冲),最接近真实可用值。buff/cache
:内核缓存(可被快速释放)。- 误区:
free
列并非”真正空闲”,需结合available
判断。
top
命令(动态进程级监控)
top
操作指南:
- 按
Shift+M
按内存排序进程 - 头部信息重点关注:
MiB Mem
:物理内存使用MiB Swap
:交换空间使用
- 退出按
q
htop
命令(增强版交互监控)
sudo apt install htop # Debian/Ubuntu sudo yum install htop # CentOS/RHEL htop
优势:
- 彩色可视化显示
- 鼠标支持滚动和点击操作
- 直接杀死进程(F9键)
二、高级诊断工具
vmstat
(虚拟内存统计)
vmstat -s -SM # 以MB为单位显示摘要
关键输出:
8192 M total memory
2147 M used memory
3278 M active memory
1284 M inactive memory
1520 M free memory
123 M buffer memory
4418 M swap cache
active/inactive
:区分内存活跃度,诊断内存压力。
/proc/meminfo
(内核级数据)
cat /proc/meminfo | grep -e MemTotal -e MemAvailable -e SwapTotal
专业用途:
- 直接读取内核内存分配数据
- 开发脚本时提取原始指标
smem
(按用户/进程统计)
sudo apt install smem # 安装 smem -u -k # 按用户显示(KB单位)
输出示例:
User Count Swap USS PSS RSS
root 52 0.00K 123.4M 456.7M 789.0M
ubuntu 28 0.00K 78.9M 234.5M 567.8M
- USS:独占内存(最精准泄漏判断)
- PSS:均摊共享内存(最合理进程内存指标)
️ 三、图形化工具(适合桌面用户)
工具名称 | 安装命令(Ubuntu) | 特点 |
---|---|---|
GNOME System Monitor | 预装或sudo apt install gnome-system-monitor |
直观进程管理,资源图表 |
KSysGuard | sudo apt install ksysguard |
KDE桌面专属,支持远程监控 |
Glances | pip install glances |
终端可视化,支持Web端访问 |
️ 四、关键指标解读与误区
-
内存是否不足?看
available
而非free
free
值低但available
高 = 系统高效利用缓存,无需担心。 -
Swap使用突增
可能预示物理内存不足,需检查vmstat
的si/so
(交换区读写频率)。 -
缓存(cache)与缓冲(buffer)区别:
- Cache:加速文件读取(可释放)
- Buffer:暂存磁盘写入数据
五、场景化推荐方案
场景 | 推荐命令 |
---|---|
快速检查可用内存 | free -h |
定位内存消耗最大进程 | htop + 按F6 选%MEM 排序 |
诊断内存泄漏 | smem -p -u + 定期采样对比 |
服务器长期监控 | vmstat 5 (每5秒刷新) |
引用说明
- Linux
man
手册(命令原生文档)
man free
,man top
,man proc
- Red Hat 性能调优指南(2025版)
Red Hat Enterprise Linux Performance Tuning - Ubuntu 服务器管理官方文档
Ubuntu Server Documentation – Resource Monitoring
最佳实践提示:生产环境建议配置
cron
定时任务记录free -h
和vmstat
输出,生成历史趋势报告,对于容器环境(如Docker),需使用docker stats
或cgroup
专用工具。