java none tomcat_【请教】遇到一个折腾很久也没解决的tomcat java问题,请教大家

遇到一个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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在导入Java文件时遇到"GC overhead limit exceeded"错误,可以尝试以下解决方案: 1. 增加堆内存大小:通过增加Java堆内存大小来解决问题。可以使用启动参数"-Xmx"来设置堆内存大小,例如"-Xmx2g"表示将堆内存大小设置为2GB。 2. 选择合适的GC算法:不同的GC算法对内存管理的方式不同,选择合适的GC算法可以减少"GC overhead limit exceeded"错误的发生。可以使用启动参数"-XX:+UseParallelGC"来选择并行GC算法。 3. 检查代码中的内存泄漏:该错误通常是由于代码中存在内存泄漏导致的。可以通过检查代码,确保及时释放不再使用的对象,避免内存泄漏的发生。 4. 调整应用程序的逻辑:如果应用程序的逻辑导致频繁的垃圾回收操作,也可能引发"GC overhead limit exceeded"错误。可以考虑优化应用程序的逻辑,减少不必要的垃圾回收操作。 需要注意的是,以上解决方案并不是适用于所有情况,具体的解决方法可能因应用程序的具体情况而异。在解决问题时,可以根据具体的错误信息和应用程序的需求进行调整和优化。\[1\]\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [GC overhead limit exceeded问题](https://blog.csdn.net/qq_36908872/article/details/102685311)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [java.lang.OutOfMemoryError: GC overhead limit exceeded问题分析及解决](https://blog.csdn.net/whc888666/article/details/128496598)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值