追踪线程

Posted gqymy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了追踪线程相关的知识,希望对你有一定的参考价值。

第一步:用jstack命令dump线程信息,看看pid为3117的进程里的线程都在做什么
第二步:统计所有线程分别处于什么状态,发现300多个线程处于WAITING(onobjectmonitor)状态
第三步:打开dump文件查看处于WAITING(onobjectmonitor)的线程在做什么。发现这些线 程基本全是JBOSS的工作线程,在await。说明JBOSS线程池里线程接收到的任务太少,大量线 程都闲着
第四步:减少JBOSS的工作线程数,找到JBOSS的线程池配置信息,将maxThreads降到 100
第五步:重启JBOSS,再dump线程信息,然后统计WAITING(onobjectmonitor)的线程,发现 减少了175个。WAITING的线程少了,系统上下文切换的次数就会少,因为每一次从 WAITTING到RUNNABLE都会进行一次上下文的切换

以上是关于追踪线程的主要内容,如果未能解决你的问题,请参考以下文章

追踪内核中神秘的高优先级线程挂起

为啥我的 CUDA 光线追踪器给我这个线程布局的错误代码 700?

动态追踪怎么用?(上)

linux性能优化动态追踪

Logback+Spring-Aop实现全面生态化的全链路日志追踪系统服务插件「Logback-MDC篇」

京东到家购物车日志优化实践