window环境下,tomcat8.5,cpu占用100%

发布于 2022-09-07 19:58:46 字数 2195 浏览 24 评论 0

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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

你曾走过我的故事 2022-09-14 19:58:46

没遇到过, 提供几个排查点吧. 看下java版本、多打印几次线程堆栈, 确认只是偶然进入到了这个方法还是几乎每次都在这个方法里, 重启几次, 确认下是不是每次都是这些线程消耗CPU.

从你给出的线程来看, 可能是select方法比较消耗CPU, 可以查下是不是jdk或者tomcat的bug.
比如 java nio的一个严重BUG,导致cpu 100% 或者 JAVA NIO存在的问题

╭⌒浅淡时光〆 2022-09-14 19:58:46

已解决,虽然不知道问题出在哪。之前已经检查过线程方面没有问题,同样的项目,我这里CPU100%,但是在同事那边正常。怀疑是系统本身问题,但是由于业务繁忙,一直不敢重装,知道前几天才换成新系统,问题解决。
原系统:联想-windows10家庭中文版
新系统:联想-windows10教育版

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文