Linux内存监控:6种方法快速掌握系统"办公桌"使用情况

如果把内存比作程序员的办公桌,可用内存就是桌面上还能摆放新文件的空间。当你的"办公桌"堆满文档(运行程序)、临时文件夹(缓存)和参考资料(缓冲区)时,就需要及时整理。本文用办公室管理术,教你快速查看Linux系统的"桌面空间"。


方法1:free命令 - 快速查看内存概览

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi       4.2Gi       8.1Gi       356Mi       2.7Gi        10Gi
Swap:          2.0Gi       0B          2.0Gi

关键指标解读

  • available:真正可用的内存(包含可回收的缓存)

  • buff/cache:临时储物柜(可快速清空释放空间)

场景应用

# 查看以MB为单位的内存使用
$ free -m
# 持续监控(每2秒刷新)
$ watch -n 2 free -h

方法2:top命令 - 动态内存观察室

操作步骤

  1. 输入top进入监控界面

  2. M按内存使用排序进程

  3. 重点关注%MEM列和RES

输出示例

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND  
1134 mysql     20   0   12.3g   5.2g   128m S  2.3   34.1   100:20.12 mysqld

方法3:/proc/meminfo - 内存信息档案馆

$ cat /proc/meminfo | grep -E 'MemTotal|MemFree|MemAvailable'
MemTotal:       16248572 kB  
MemFree:         8372148 kB  
MemAvailable:   10485760 kB

数据解析技巧

# 快速计算可用内存百分比
awk '/MemAvailable/{avail=$2} /MemTotal/{total=$2} END{printf "可用内存: %.1f%%\n", avail/total*100}' /proc/meminfo

方法4:htop命令 - 豪华版任务管理器

进阶功能

  • 颜色区分内存类型(绿色=已用,蓝色=缓冲)

  • 鼠标点击列排序

  • 树状视图查看进程层级

安装方法

# Ubuntu/Debian
sudo apt install htop

# CentOS/RHEL
sudo yum install epel-release && sudo yum install htop

方法5:vmstat - 内存变化趋势仪

$ vmstat -s -S M # 以MB为单位显示
      16384 M total memory
       4321 M used memory
       7570 M active memory
       1213 M inactive memory
       8483 M free memory
        256 M buffer memory
       2048 M swap cache

动态监控模式

# 每3秒刷新,持续观察内存波动
$ vmstat 3
procs -----------memory---------- ---swap--
 r  b   swpd   free   buff  cache   si   so
 2  0      0 848324 262144 196608   0    0

方法6:GNOME系统监视器 - 图形化仪表盘

使用场景

  • 桌面环境快速查看

  • 可视化内存占用比例

  • 拖拽调整排序维度

打开方式

  1. Super键(Windows键)

  2. 搜索"System Monitor"

  3. 选择"Resources"标签页


内存管理三大黄金法则

  1. 缓存≠占用:Linux会主动利用空闲内存做磁盘缓存(buff/cache),这其实是性能优化机制

  2. Available才是真指标free -h中的available值包含可回收缓存

  3. Swap使用预警:当swap使用率持续>20%,说明物理内存已吃紧

实战案例
当网站响应变慢时,通过组合命令快速诊断:

# 第一步:快速概览
free -h | grep available
# 第二步:定位内存大户
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head -n 10
# 第三步:分析缓存情况
grep -E 'Cached|Swap' /proc/meminfo

工具选择指南

场景需求 推荐工具 使用示例
快速检查当前可用 free free -h
实时进程监控 htop htop
编写监控脚本 /proc/meminfo awk '/MemAvailable/...
趋势分析 vmstat vmstat 5
桌面环境 GNOME系统监视器 图形界面直接操作
完整快照 top top然后按M

终极技巧:使用watch命令打造动态监控墙

# 在终端创建分屏监控
watch -n 1 "free -h; echo; ps -eo pid,%mem,cmd --sort=-%mem | head -n 5"

这将每秒刷新显示内存概况和Top 5内存消耗进程