linux服务器下CPU爆满

top

使用top发现进程64690 CPU占用过高超过200%

top -H -p PID

top -H -p 64690

发现进程64690下的其中一个线程64736 CPU占用异常高

线程PID转换十六进制

printf “%x ” 64637

获取到进程64637的十六进制码值(字母小写): fce0

jstack打印堆栈信息

进入到jdk安装目录下   /opt/jdk1.8.0_11/bin

使用./jstack 64690 | grep "fce0" -A 50

可在打印出来的堆栈信息中找到对应的异常代码

线程状态

1.死锁:Deadlock(重点关注)

2.执行中: Runnable

3.等待资源: Waiting on condition(重点关注,等到什么资源)

4.等待获取监视器: Waiting on monitor entry(重点关注)

5.暂停: Suspended

6.对象等待中: Object.wait() 或者 TIMED_WAITING

7.堵塞: Blocked(重点关注)

8.停止: Parked

当能力支撑不了野心时,就该静下心来学习!
原文地址:https://www.cnblogs.com/1234cjq/p/14890423.html