1 top命令查看cpu使用率
项目有监控大盘 可以从大盘上看
2 jstack Full Thread Dump
Found one Java-level deadlock:
=============================
"Thread-1":
waiting for ownable synchronizer 0x00000007d6e6dab8, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "Thread-0"
"Thread-0":
waiting for ownable synchronizer 0x00000007d6e6dae8, (a java.util.concurrent.locks.ReentrantLock$NonfairSync),
which is held by "Thread-1"
3 分析jstack日志
对于jstack日志,我们要着重关注如下关键信息
Deadlock:表示有死锁
Waiting on condition:等待某个资源或条件发生来唤醒自己。具体需要结合jstacktrace来分析,比如线程正在sleep,网络读写繁忙而等待
Blocked:阻塞
Waiting on monitor entry:在等待获取锁