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

问题描述 投票:0回答:1

非常感谢您的帮助和指导。

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

  • 通过Windows服务器上的NSSM(https://nssm.cc)将[JBOSS EAP 6.3 alpha配置为服务
  • 我已经捕获了线程转储,并确定了高CPU使用率线程(总共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)
java multithreading jboss cpu-usage
1个回答
0
投票
These threads are consuming around 15% of CPU each.它们可能会消耗较高的cpu,但不会被阻塞。
© www.soinside.com 2019 - 2024. All rights reserved.