-
定位高CPU进程
- 使用
top命令:按P键按CPU使用率排序,查看占用高的进程及PID。 - 使用
htop命令:支持鼠标操作,按F6选择按CPU排序,可查看进程层级。 - 使用
ps命令:ps aux --sort=-%cpu | head -n 10列出前10个高CPU进程。
- 使用
-
分析进程行为
- 使用
pidstat:pidstat -u -p查看进程的用户态/内核态CPU使用情况。 - 使用
perf工具:perf top实时查看CPU热点函数,perf record+perf report分析函数调用栈。 - 对于Java进程,使用
jstack查看线程堆栈,定位死循环或阻塞代码。
- 使用
-
优化或限制进程
- 优化程序代码:修复性能瓶颈,如减少循环嵌套、优化算法。
- 调整配置文件:如修改Nginx/MySQL的配置参数,降低资源占用。
- 限制进程资源:使用
ulimit限制CPU使用率,或通过cgroups控制进程资源分配。
-
系统级优化
- 调整内核参数:修改
/etc/sysctl.conf,如优化vm.swappiness减少交换分区使用。 - 升级硬件:若为硬件资源不足导致,可增加CPU核心或内存。
- 调整内核参数:修改
-
监控与预防
- 部署监控工具:如Prometheus+Grafana,设置CPU使用率阈值告警。
- 定期维护:清理无用进程,更新系统和软件以修复性能问题。
注意:操作前需确认进程是否为关键服务,避免误杀导致系统异常。