追踪线程
第一步:用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都会进行一次上下文的切换
博客链接:https://www.cnblogs.com/gqymy/