当前位置:首页 > Linux > 正文

Linux内存使用如何查看?

使用 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` 按内存排序

关键指标

Linux内存使用如何查看? 第1张

  • %MEM:进程占用物理内存百分比
  • VIRT:虚拟内存总量(含共享库+Swap)
  • RES:实际物理内存使用量

htop 增强版(交互式视图)

htop # 需安装(sudo apt install htop)

优势:

  • 颜色标记内存/CPU压力
  • 鼠标支持横向滚动查看完整命令
  • 直观树状结构展示进程层级


三、深度分析:/proc/meminfo(内核级数据)

直接读取内核内存状态文件:

cat /proc/meminfo

核心参数

| 参数 | 含义 |

|———————|————————–|

| MemTotal | 总物理内存 |

| MemFree | 完全未使用的内存 |

| Cached | 页面缓存(可回收) |

| SwapCached | Swap缓存 |

| Active | 活跃内存(频繁访问) |

| Inactive | 非活跃内存(可能被回收) |

Linux内存使用如何查看? 第2张

适用于脚本开发或定制监控工具的数据源


四、综合工具:vmstat(虚拟内存统计)

命令示例

Linux内存使用如何查看? 第3张

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:页面缓存量


️ 五、图形化工具(适合桌面环境)

  1. GNOME System Monitor
    • 路径:Applications → System Tools → System Monitor
    • 功能:实时图表展示内存/Swap使用趋势
  2. KSysGuard(KDE环境)

    支持自定义传感器仪表盘


六、关键诊断场景

  1. 内存泄漏检测
    • 组合命令:watch -n 1 "free -h; echo; ps aux --sort=-%mem | head -n 5"
  2. 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内存状态,及时预防性能瓶颈。

0