第十八节:CPU 100%排查优化实战
前面给大家讲过一次 OOM 的优化排查实战,今天再给大家讲一个 CPU 100% 优化排查实战。
收到运维同学的报警,说某些服务器负载非常高,让我们开发定位问题。拿到问题后先去服务器上看了看,发现运行的只有我们的 Java 应用程序。于是先用 ps
命令拿到了应用的 PID
。
ps:查看进程的命令;PID:进程 ID。
ps -ef | grep java
可以查看所有的 Java 进程。前面也曾讲过。
接着使用 top -Hp pid
将这个进程的线程显示出来。输入大写 P 可以将线程按照 CPU 使用比例排序,于是得到以下结果。
果然,某些线程的 CPU 使用率非常高,99.9% 可不是非常高嘛(😂)。
为了方便问题定位,我立马使用 jstack pid > pid.log
将线程栈 dump
到日志文件中。关于 jstack 命令,我们前面刚刚讲过。
我在上面 99.9% 的线程中随机选了一个 pid=194283
的,转换为 16 进制
回复