[linux性能优化] 综合实战 迁
优化java
使用阿里开源的神奇:arthas
https://cloud.tencent.com/developer/article/1534894
常用:
dashboard
thread -b
使用 命令查看直接定位到死锁
# 线程池线程状态
定位线程问题之前,先回顾一下线程的几种常见状态: RUNNABLE 运行中 TIMED_WAITING 调用了以下方法的线程会进入TIMED_WAITING: Thread#sleep() Object#wait() 并加了超时参数 Thread#join() 并加了超时参数 LockSupport#parkNanos() LockSupport#parkUntil() WAITING 当线程调用以下方法时会进入WAITING状态: Object#wait() 而且不加超时参数 Thread#join() 而且不加超时参数 LockSupport#park() BLOCKED 阻塞,等待锁 上面的模拟代码里,定义了线程池大小为1 的线程池,然后在 cpuHigh 方法里提交了一个线程,在 thread方法再次提交了一个线程,后面的这个线程因为线程池已满,会阻塞下来。 使用 thread | grep pool 命令查看线程池里线程信息。
thread -n [显示的线程个数] ,就可以排列出 CPU 使用率 Top N 的线程

浙公网安备 33010602011771号