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

Linux内存使用如何查看?

使用 free -h命令查看内存总量、已用量和空闲量, tophtop工具可动态监控内存占用详情及进程消耗。

一、基础命令: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使用:若持续过高,需优化物理内存

二、动态监控:tophtop

top 命令(进程级资源监控)

top  # 运行后按 `M` 按内存排序

关键指标

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

htop 增强版(交互式视图)

htop  # 需安装(sudo apt install htop)

优势:

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

  • 颜色标记内存/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:页面缓存量

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

  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
进程级内存分析 tophtop
内核级详细数据 /proc/meminfo
长期趋势与Swap监控 vmstat
桌面可视化 GNOME/KDE工具

最佳实践:生产环境中建议结合 cron 定时任务记录 freevmstat 数据,便于历史分析。


引用说明

  • 命令参数规范参考 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