Linux内存监控:6种方法快速掌握系统"办公桌"使用情况
如果把内存比作程序员的办公桌,可用内存就是桌面上还能摆放新文件的空间。当你的"办公桌"堆满文档(运行程序)、临时文件夹(缓存)和参考资料(缓冲区)时,就需要及时整理。本文用办公室管理术,教你快速查看Linux系统的"桌面空间"。
方法1:free命令 - 快速查看内存概览
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
:临时储物柜(可快速清空释放空间)
场景应用:
$ free -m # 持续监控(每2秒刷新) $ watch -n 2 free -h
方法2:top命令 - 动态内存观察室
操作步骤:
-
输入
top
进入监控界面 -
按
M
按内存使用排序进程 -
重点关注
%MEM
列和RES
列
输出示例:
1134 mysql 20 0 12.3g 5.2g 128m S 2.3 34.1 100:20.12 mysqld
方法3:/proc/meminfo - 内存信息档案馆
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命令 - 豪华版任务管理器
进阶功能:
-
颜色区分内存类型(绿色=已用,蓝色=缓冲)
-
鼠标点击列排序
-
树状视图查看进程层级
安装方法:
sudo apt install htop # CentOS/RHEL sudo yum install epel-release && sudo yum install htop
方法5:vmstat - 内存变化趋势仪
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
动态监控模式:
$ vmstat 3 procs -----------memory---------- ---swap-- r b swpd free buff cache si so 2 0 0 848324 262144 196608 0 0
方法6:GNOME系统监视器 - 图形化仪表盘
使用场景:
-
桌面环境快速查看
-
可视化内存占用比例
-
拖拽调整排序维度
打开方式:
-
按
Super
键(Windows键) -
搜索"System Monitor"
-
选择"Resources"标签页
内存管理三大黄金法则
-
缓存≠占用:Linux会主动利用空闲内存做磁盘缓存(buff/cache),这其实是性能优化机制
-
Available才是真指标:
free -h
中的available值包含可回收缓存 -
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内存消耗进程