上一篇                     
               
			  Linux内存如何实时监控?
- Linux
- 2025-06-10
- 2450
 在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而非freefree值低但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专用工具。
 
  
			 
			 
			 
			 
			 
			