命令行工具(最常用)
free 命令
操作与解析:
free -h # 人性化单位显示(KB/MB/GB)
输出示例:
total used free shared buff/cache available
Mem: 7.6G 2.1G 1.2G 123M 4.3G 5.0G
Swap: 2.0G 0B 2.0G
- 关键指标:
used:已用内存(含缓存/缓冲区)。available:真实可用内存(系统估算的可分配量,优先看此值)。buff/cache:缓存/缓冲区占用(必要时会被释放)。- 警惕点:若
available接近0且swap使用率高,说明内存不足。
top / htop 命令
操作:
top # 实时动态视图 htop # 增强版(需安装:`sudo apt install htop`)
解析:
- 在
top界面按M按内存排序进程。 - 内存行显示:
MiB Mem : 7742.8 total, 1234.2 free, ... 4567.4 buff/cache MiB Swap: 2048.0 total, 2048.0 free, ... - 进程列
%MEM显示单个进程内存占比。
/proc/meminfo(原始数据)
cat /proc/meminfo
关键参数:
MemTotal:总物理内存。MemFree:完全未使用的内存(意义有限)。MemAvailable:推荐关注(系统可用内存估算值)。Buffers、Cached:缓存/缓冲区大小。SwapTotal、SwapFree:交换分区状态。
图形化工具(适合桌面用户)
-
GNOME 系统监视器
- 路径:
Applications → System Tools → System Monitor - 直接显示内存/交换空间使用曲线图。
- 路径:
-
KSysGuard (KDE)
提供实时内存监控及进程管理。
高级工具(运维场景)
vmstat(分析内存趋势)
vmstat -s # 汇总统计 vmstat 2 5 # 每2秒采样1次,共5次(看si/so列是否发生Swap交换)
smem(按进程统计)
sudo apt install smem smem -p # 以百分比显示进程内存
结果分析与优化建议
-
内存不足的征兆:
available持续低于总内存的 10%。swap使用率 >20% 且si(swap-in)、so(swap-out)频繁变动。- 系统响应缓慢,OOM(Out-Of-Memory)错误频发。
-
优化方向:
- 释放缓存:
sync; echo 3 > /proc/sys/vm/drop_caches(临时清理,生产环境慎用)。 - 限制高内存进程:通过
systemd或cgroups限制服务资源。 - 调整Swap:增加Swap空间或使用SSD提升交换效率。
- 排查内存泄漏:用
valgrind或持续监控可疑进程。
- 释放缓存:
- 日常监控:首选
free -h和htop,重点关注available值。 - 深度诊断:结合
/proc/meminfo与vmstat分析趋势。 - 关键原则:Linux会利用空闲内存作缓存提升性能,
used高未必是问题,available才是核心指标。
引用说明参考 Linux 官方文档(kernel.org/docs)、Ubuntu Manpage 以及《Linux Performance Optimization》实践指南,数据指标解析依据内核文档
Documentation/filesystems/proc.txt。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/4793.html