遇到一个tomcat java的问题,请教大牛们,可能是什么原因导致的,如何解决?感谢!
系统版本
windows 版本 ————
windows server 2008 R2 Datacenter
JDK版本 1.8.0_162-win32
Tomcat版本 apache-tomcat-9.0.5 32位
Mysql版本 MySQL 5.7.21-win32
硬件配置
Intel(R) Xeon(R) CPU E5-2667 v4 @ 3.20GHZ 3.19GHZ (2处理器)
32.0GB(31.6GB可用)
64位操作系统
没有用于此显示器的笔或触控输入
补充:32线程 内存:32g
问题描述:开启tomcat服务,过1到2个小时,出现tomcat.exe占用cpu18%的情况。
通过process explorer查看Tomcat进程下的线程
有6个线程都占用3.11%的cpu
通过jstack把进程下所以的Java线程栈的内容打印出文本中。
jstack -l 900 > c:/java.stack
通过process explorer获取到的线程TID对应的是stack文本线程栈描述内容中的nid的十进制值。
打开java.stack查看是以下6个线程占用cpu:
"ajp-nio-28009-ClientPoller-1" #47 daemon prio=5 os_prio=0 tid=0x169a4000 nid=0x3e4c runnable [0x1d73f000]
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 <0x0bc44db8> (a sun.nio.ch.Util$3)
- locked <0x0bc44dc8> (a java.util.Collections$UnmodifiableSet)
- locked <0x0bc44d40> (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:748)
Locked ownable synchronizers:
- None
"ajp-nio-28009-ClientPoller-0" #46 daemon prio=5 os_prio=0 tid=0x169a3c00 nid=0x81064 runnable [0x1d52f000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0(Native Method)
at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket(WindowsSelectorImpl.java:473)
- locked <0x0bc63958> (a java.lang.Object)
at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:174)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x0bc48040> (a sun.nio.ch.Util$3)
- locked <0x0bc48050> (a java.util.Collections$UnmodifiableSet)
- locked <0x0bc47fc8> (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:748)
Locked ownable synchronizers:
- None
"http-nio-28080-ClientPoller-0" #32 daemon prio=5 os_prio=0 tid=0x17b34400 nid=0x687dc runnable [0x1cb0f000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0(Native Method)
at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket(WindowsSelectorImpl.java:473)
- locked <0x0bc641d0> (a java.lang.Object)
at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:174)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x0bc4fc20> (a sun.nio.ch.Util$3)
- locked <0x0bc4fc30> (a java.util.Collections$UnmodifiableSet)
- locked <0x0bc4fba8> (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:748)
Locked ownable synchronizers:
- None
"http-nio-28080-ClientPoller-1" #33 daemon prio=5 os_prio=0 tid=0x17b34800 nid=0xb3230 runnable [0x1cc5f000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket0(Native Method)
at sun.nio.ch.WindowsSelectorImpl.resetWakeupSocket(WindowsSelectorImpl.java:473)
- locked <0x0bc64028> (a java.lang.Object)
at sun.nio.ch.WindowsSelectorImpl.doSelect(WindowsSelectorImpl.java:174)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x0bc4c998> (a sun.nio.ch.Util$3)
- locked <0x0bc4c9a8> (a java.util.Collections$UnmodifiableSet)
- locked <0x0bc4c920> (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:748)
Locked ownable synchronizers:
- None
"NioBlockingSelector.BlockPoller-2" #14 daemon prio=5 os_prio=0 tid=0x15a96000 nid=0x48494 runnable [0x1669f000]
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 <0x0a12db98> (a sun.nio.ch.Util$3)
- locked <0x0a12dba8> (a java.util.Collections$UnmodifiableSet)
- locked <0x0a12db20> (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
"NioBlockingSelector.BlockPoller-1" #13 daemon prio=5 os_prio=0 tid=0x15a8ec00 nid=0x8b6c8 runnable [0x1664f000]
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 <0x0a130e08> (a sun.nio.ch.Util$3)
- locked <0x0a130e18> (a java.util.Collections$UnmodifiableSet)
- locked <0x0a130d90> (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
--
FROM 112.5.168.*