window环境下,tomcat8.5,cpu占用100%
tomcat开启后过一段时间CPU占用高达60-70%。
百度了一下,很多人都说在JavaStack查看,下面是jstack里面占用高的几个线程信息
"ajp-nio-8009-ClientPoller-1" #55 daemon prio=5 os_prio=0 tid=0x000000001e51d000 nid=0x93e4 runnable [0x0000000028ade000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278)
at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000934c46b0> (a sun.nio.ch.Util$2)
- locked <0x00000000934c46a0> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000000934c4530> (a sun.nio.ch.WindowsSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:710)
at java.lang.Thread.run(Thread.java:745)
Locked ownable synchronizers:
- None
"NioBlockingSelector.BlockPoller-2" #16 daemon prio=5 os_prio=0 tid=0x000000001bdbe000 nid=0xa124 runnable [0x000000001d8df000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll0(Native Method)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.poll(WindowsSelectorImpl.java:296)
at sun.nio.ch.WindowsSelectorImpl$SubSelector.access$400(WindowsSelectorImpl.java:278)
at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:159)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x000000009192fb18> (a sun.nio.ch.Util$2)
- locked <0x000000009192fb08> (a java.util.Collections$UnmodifiableSet)
- locked <0x000000009192f9a8> (a sun.nio.ch.WindowsSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:298)
Locked ownable synchronizers:
- None
别人找到的都是自己代码里的类,通过分析异常信息,找出死锁代码,但是我这个 at 的都是jar包里的类,怎么分析啊,各位?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
没遇到过, 提供几个排查点吧. 看下java版本、多打印几次线程堆栈, 确认只是偶然进入到了这个方法还是几乎每次都在这个方法里, 重启几次, 确认下是不是每次都是这些线程消耗CPU.
从你给出的线程来看, 可能是select方法比较消耗CPU, 可以查下是不是jdk或者tomcat的bug.
比如 java nio的一个严重BUG,导致cpu 100% 或者 JAVA NIO存在的问题
已解决,虽然不知道问题出在哪。之前已经检查过线程方面没有问题,同样的项目,我这里CPU100%,但是在同事那边正常。怀疑是系统本身问题,但是由于业务繁忙,一直不敢重装,知道前几天才换成新系统,问题解决。
原系统:联想-windows10家庭中文版
新系统:联想-windows10教育版