gpt4 book ai didi

java - Java高CPU线程| JBOSS EAP 6.3 |无法找到根本原因

转载 作者:行者123 更新时间:2023-12-01 22:35:12 27 4
gpt4 key购买 nike

非常感谢帮助和指导。

报告的问题是JBOSS的CPU使用率高(> 95%)。


通过Windows Server上的NSSM(https://nssm.cc)将JBOSS EAP 6.3 alpha配置为服务
我已经捕获了线程转储并确定了High CPU Utilizing线程(总共5个),如下所示:
nativeId(以10为底的十进制数):6428、2768、5904、6100和6840。这些线程消耗了大约15%
每个CPU。
通过线程转储未观察到死锁
我还没有编写部署的代码,也没有这些线程的源代码,所以作为交付/实施团队的一部分,我有些卡住。


High CPU threads identified through psexplorer.exe


对于这5个线程,堆栈跟踪的2种类型/变化如下:

http- / 0.0.0.0:8080-187
优先级:6-线程ID:0x0000000022d29800-nativeId:0x191c-nativeId(十进制):6428-状态:RUNNABLE
堆栈跟踪:
java.lang.Thread.State:RUNNABLE
在java.lang.Throwable.fillInStackTrace(本机方法)
在java.lang.Throwable.fillInStackTrace(Throwable.java:783)


锁定<0x00000007b394a958>(java.util.concurrent.ExecutionException)
在java.lang.Throwable。(Throwable.java:310)
在java.lang.Exception。(Exception.java:102)
在java.util.concurrent.ExecutionException。(ExecutionException.java:92)
在sun.nio.ch.CompletedFuture.get(CompletedFuture.java:78)
在org.apache.tomcat.util.net.NioChannel.readBytes(NioChannel.java:597)
在org.apache.coyote.http11.InternalNioInputBuffer.blockingRead(InternalNioInputBuffer.java:504)
在org.apache.coyote.http11.InternalNioInputBuffer.fill0(InternalNioInputBuffer.java:449)
在org.apache.coyote.http11.InternalNioInputBuffer.access $ 100(InternalNioInputBuffer.java:50)
在org.apache.coyote.http11.InternalNioInputBuffer $ InputBufferImpl.doRead(InternalNioInputBuffer.java:528)
在org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116)
在org.apache.coyote.http11.InternalNioInputBuffer.doRead(InternalNioInputBuffer.java:407)
在org.apache.coyote.Request.doRead(Request.java:438)
在org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:357)
在org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:422)
在org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:389)
在org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
在org.apache.commons.fileupload.MultipartStream $ ItemInputStream.makeAvailable(MultipartStream.java:999)
在org.apache.commons.fileupload.MultipartStream $ ItemInputStream.close(MultipartStream.java:943)
在org.apache.commons.fileupload.MultipartStream $ ItemInputStream.close(MultipartStream.java:922)
在org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:280)
在org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:223)
在org.apache.commons.fileupload.util.Streams.copy(Streams.java:123)
在org.apache.commons.fileupload.util.Streams.copy(Streams.java:70)
在org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:347)
在org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115)
在com.newgen.wfdesktop.servlet.filehandler.processRequest(filehandler.java:70)
在com.newgen.wfdesktop.servlet.filehandler.doPost(filehandler.java:122)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在com.newgen.ibps.security.xss.SECRequestValidator.doFilter(SECRequestValidator.java:231)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在com.newgen.wfdesktop.filter.WDSessionCheckFilter.doFilter(WDSessionCheckFilter.java:378)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在com.newgen.wfdesktop.filter.WDClickJackFilter.doFilter(WDClickJackFilter.java:179)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420)
在org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
在org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:353)
在org.apache.coyote.http11.Http11NioProtocol $ Http11ConnectionHandler.process(Http11NioProtocol.java:911)
在org.apache.tomcat.util.net.NioEndpoint $ ChannelProcessor.run(NioEndpoint.java:920)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:745)
锁定的可拥有同步器:
<0x000000069bcbde88>(一个java.util.concurrent.ThreadPoolExecutor $ Worker)


http- / 0.0.0.0:8080-146
优先级:6-线程ID:0x0000000024579000-本机ID:0xad0-本机ID(十进制):2768-状态:RUNNABLE
堆栈跟踪:
java.lang.Thread.State:RUNNABLE
在java.lang.Throwable.fillInStackTrace(本机方法)
在java.lang.Throwable.fillInStackTrace(Throwable.java:783)


锁定<0x00000007b4558488>(java.nio.channels.ClosedChannelException)
在java.lang.Throwable。(Throwable.java:250)
在java.lang.Exception。(Exception.java:54)
在java.io.IOException(IOException.java:47)
在java.nio.channels.ClosedChannelException。(ClosedChannelException.java:52)
在sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:233)
在sun.nio.ch.AsynchronousSocketChannelImpl.read(AsynchronousSocketChannelImpl.java:283)
在org.apache.tomcat.util.net.NioChannel.readBytes(NioChannel.java:597)
在org.apache.coyote.http11.InternalNioInputBuffer.blockingRead(InternalNioInputBuffer.java:504)
在org.apache.coyote.http11.InternalNioInputBuffer.fill0(InternalNioInputBuffer.java:449)
在org.apache.coyote.http11.InternalNioInputBuffer.access $ 100(InternalNioInputBuffer.java:50)
在org.apache.coyote.http11.InternalNioInputBuffer $ InputBufferImpl.doRead(InternalNioInputBuffer.java:528)
在org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116)
在org.apache.coyote.http11.InternalNioInputBuffer.doRead(InternalNioInputBuffer.java:407)
在org.apache.coyote.Request.doRead(Request.java:438)
在org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:357)
在org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:422)
在org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:389)
在org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:193)
在org.apache.commons.fileupload.MultipartStream $ ItemInputStream.makeAvailable(MultipartStream.java:999)
在org.apache.commons.fileupload.MultipartStream $ ItemInputStream.close(MultipartStream.java:943)
在org.apache.commons.fileupload.MultipartStream $ ItemInputStream.close(MultipartStream.java:922)
在org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:280)
在org.apache.commons.io.IOUtils.closeQuietly(IOUtils.java:223)
在org.apache.commons.fileupload.util.Streams.copy(Streams.java:123)
在org.apache.commons.fileupload.util.Streams.copy(Streams.java:70)
在org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:347)
在org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:115)
在com.newgen.wfdesktop.servlet.filehandler.processRequest(filehandler.java:70)
在com.newgen.wfdesktop.servlet.filehandler.doPost(filehandler.java:122)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
在javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在com.newgen.ibps.security.xss.SECRequestValidator.doFilter(SECRequestValidator.java:231)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在com.newgen.wfdesktop.filter.WDSessionCheckFilter.doFilter(WDSessionCheckFilter.java:378)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在com.newgen.wfdesktop.filter.WDClickJackFilter.doFilter(WDClickJackFilter.java:179)
在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
在org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
在org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231)
在org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
在org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:420)
在org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
在org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
在org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
在org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:340)
在org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:353)
在org.apache.coyote.http11.Http11NioProtocol $ Http11ConnectionHandler.process(Http11NioProtocol.java:911)
在org.apache.tomcat.util.net.NioEndpoint $ ChannelProcessor.run(NioEndpoint.java:920)
在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
在java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615)
在java.lang.Thread.run(Thread.java:745)
锁定的可拥有同步器:
<0x000000069a402d48>(一个java.util.concurrent.ThreadPoolExecutor $ Worker)

最佳答案

Hello,如此高的CPU使用率本身就不是问题。您需要进行一系列线程转储,并使用网站Samuraifastthread.io对其进行分析。

These threads are consuming around 15% of CPU each.它们可能会消耗较高的cpu,但不会被阻塞。

关于java - Java高CPU线程| JBOSS EAP 6.3 |无法找到根本原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58528938/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com