主题
内存与 CPU 分析
当系统变慢或响应迟缓时,首先需要检查的是 CPU 与内存的使用情况。掌握相关工具的使用,可以快速定位性能问题。
一、分析内存使用情况
1. free
查看内存整体使用情况:
bash
free -h输出示例:
bash
total used free shared buff/cache available
Mem: 3.8G 2.5G 230M 200M 1.1G 800M
Swap: 2.0G 500M 1.5Gused包括实际占用 + 缓存available才是真正可用内存(不含缓存)
2. top / htop
查看内存使用最多的进程:
bash
top或使用更直观的:
bash
htop在进程列表中可排序查看 RES(常驻内存)列。
3. smem
更准确地显示每个进程真实占用的内存:
bash
sudo apt install smem
smem -r -k二、分析 CPU 使用情况
1. top / htop
实时查看 CPU 占用高的进程:
- %CPU 列表示单核占比
- 多核系统总 CPU 利用率 = 所有进程 %CPU 总和 ÷ 核心数
2. mpstat(来自 sysstat 包)
查看每个 CPU 核心的使用情况:
bash
mpstat -P ALL 1重点关注:
%idle(空闲)是否接近 0%usr用户态消耗高 → 应用问题%sys内核态消耗高 → 系统调用密集或驱动问题
3. pidstat
查看指定进程 CPU 占用:
bash
pidstat -u -p <PID> 14. perf(高级分析工具)
分析程序 CPU 消耗的函数级别来源:
bash
sudo perf top适用于开发或深入性能调试场景。
三、常见内存/CPU 异常现象与解决建议
| 问题场景 | 可能原因 | 排查建议 |
|---|---|---|
| 内存占用持续升高 | 程序内存泄露 | 使用 top/smem 查找异常进程 |
| swap 使用过多 | 内存不足或内存压力过大 | 升级内存/优化程序内存占用 |
| CPU 占用长期 100% | 死循环/高负载服务 | top 找出高 CPU 进程,优化 |
| 系统响应变慢 | CPU 或 IO 瓶颈 | 联合 iostat 分析是否磁盘问题 |
四、优化建议
- 使用更轻量的应用或服务,减少资源消耗
- 对高 CPU 程序进行代码优化或增加多核并行处理
- 增加物理内存或配置合理的 swap 分区
- 定期重启占用资源大的服务(如数据库、Java 应用)
掌握内存与 CPU 的分析技巧,有助于快速定位并解决 Linux 系统中的性能瓶颈问题。
