命令行工具(最常用)
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