主题
性能问题排查
Linux 系统运行缓慢或资源异常占用时,需要系统性地分析性能瓶颈。本章节提供通用排查流程和实用工具,帮助定位问题根源。
一、常见性能问题表现
- 系统响应变慢或卡顿
- Web 应用打开缓慢
- 登录 SSH 延迟或失败
- CPU 占用持续过高
- 内存或 swap 快用尽
- 磁盘 IO 等待严重
- 网络连接中断或丢包
二、性能排查通用流程
建议从整体到局部,依次排查:
txt
系统负载 → CPU → 内存 → IO → 网络 → 应用进程1. 系统整体负载
bash
uptime查看 load average 是否长期偏高:
load average: 3.24, 3.51, 3.60- 理想负载 ≈ CPU 核心数
bash
top观察 CPU、内存、swap 使用情况
2. CPU 使用分析
bash
top -o %CPU查看是否某进程 CPU 飙高
bash
mpstat -P ALL 1分析是否某个核心负载过重
3. 内存使用排查
bash
free -h- 查看是否有大量 swap 使用
bash
ps aux --sort=-%mem | head- 查看占用内存最多的进程
4. 磁盘 IO 问题
bash
iostat -x 1%util接近 100% → IO 饱和await值过高 → IO 延迟严重
bash
iotop- 查找高 IO 的进程
5. 网络瓶颈诊断
bash
ss -tunap- 查看网络连接与监听状态
bash
ping / traceroute / mtr- 检查网络延迟与丢包
bash
iftop / nload- 查看实时网络流量与传输方向
三、应用与服务排查技巧
- 是否有大量日志写入
- 数据库查询是否耗时(可用 slowlog)
- Web 服务是否出现阻塞(查看访问日志)
- 是否有僵尸进程或服务未释放资源
查看服务状态
bash
systemctl status nginx
journalctl -u nginx分析僵尸进程
bash
ps aux | grep Z四、日志与审计信息
查看系统日志:
bash
journalctl -xe
tail -f /var/log/syslog
tail -f /var/log/messages查看定时任务日志:
bash
cat /var/log/cron查看认证与安全日志:
bash
cat /var/log/auth.log五、工具组合推荐
| 工具 | 用途 |
|---|---|
| top / htop | 综合系统资源监控 |
| iotop | 磁盘读写分析 |
| iftop | 网络流量分析 |
| strace | 跟踪进程系统调用 |
| dstat / vmstat | 综合性能数据统计 |
| perf | 程序级性能分析 |
| sar | 历史系统性能记录 |
性能问题的排查没有万能工具,关键在于掌握系统性思维,从多维度定位瓶颈,并结合实际业务需求进行有针对性的优化。
