Java высоких потоков процессора |JBOSS EAP 6.3 |невозможно получить основную причину - PullRequest
0 голосов
/ 23 октября 2019

Помощь и руководство высоко ценится.

Сообщается о проблеме высокой загрузки ЦП (> 95%) JBOSS.

  • Альфа JBOSS EAP 6.3 настроена как служба через NSSM (https://nssm.cc) на сервере Windows
  • Я захватил дамп потока и определил потоки с высокой загрузкой ЦП (5в целом), как указано ниже: nativeId (в десятичной базе 10): 6428, 2768, 5904, 6100 и 6840. Эти потоки потребляют около 15% ЦП каждый.
  • В результате дампа потоков не наблюдается взаимных блокировок
  • Я не написал развернутый код и не имею исходного кода для этих потоков, поэтому я немного застрял как часть команды доставки / реализации.

Потоки с высокой загрузкой ЦП, идентифицированные с помощью psexplorer.exe

  • Для этих 5 потоков существует 2 типа / варианта трассировки стека:

    http- / 0.0.0.0: 8080-187 приоритет: 6 - threadId: 0x0000000022d29800 - nativeId: 0x191c - nativeId (десятичный): 6428 - состояние: RUNNABLE stackTrace: java.lang.Thread.State: RUNNABLE в java.lang.Throwable.fillInStackTrace (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. : 449) по адресу org.apache.coyote.http11.InternalNioInputBuffer.access $ 100 (InternalNioInputBuffer.java:50) по адресу org.apache.coyote.http11.InternalNioInputBuffer $ InputBufferImpl.doRead (InternalNero). .http11.filters.IdentityInputFilter.doRead (IdentityInputFilter.java:116) в org.apache.coyote.http11.InternalNioInputBuffer.doRead (InternalNioInputBuffer.java:407) в орг. 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 $ ItemInputStreamc (.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.wfdes.filehandler.doPost (filehandler.java:122) в javax.servlet.http.HttpServlet.service (HttpServlet.java:754) в javax.servlet.http.HttpServlet.service (HttpServlet.java:847. at или or). catalina.core. 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) кошачьей папилфайла(ApplicationFilterChain.java:246) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:214) в com.newgen.wfdesktop.filter.WDClickJackFilter.doFilter (WDClickJackgache.9). catalina.core. 231) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:149) в org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:420) в org.jboss.as.SecurityContextAssociationValve.invoke (SecurityContextAssociationValve.java:169) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:145) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.alina.cat):.core.StandardEngineValve.invoke (StandardEngineValve.java:102) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:340) в org.apache.coyote.http11.Http11NioProor.jpg) в org.apache.coyote.http11.Http11NioProtocol $ Http11ConnectionHandler.process (Http11NioProtocol.java:911) в org.apache.tomcat.util.net.NioEndpoint $ ChannelProcessor.run (NioEndpoint.java:9) вconcurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) в java.lang.Thread.run (собственный объект Thread.java:745): Locked
    • <0x000000069bcbde88> (a java.util.concurrent.ThreadPoolExecutor $ Worker)

    http- / 0.0.0.0: 8080-146 priority: 6 - threadId: 0x0000000024579000 - nativeId: 0xad0 - nativeId (десятичный): 2768 - состояние: RUNNABLE stackTrace: java.lang.Thread.State: RUNNABLE в java.lang.Throwable.fillInStackTrace (собственный метод) в java.lan. 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. читать (AsynchronousSocketChannelImpl.java:233) в sun.nio.ch.AsynchronousSocketChannelImpl.read (AsynchronousSocketChannelImpl.java:283) в org.apache.tomcat.util.net.NioChannel.readBytes (navaChan7) at NioChan7.coyote.http11.InternalNioInputBuffer.blockingRead (InternalNioInputBuffer.java:504) в org.apache.coyote.http11.InternalNioInputBuffer.fill0 (InternalNioInputBuffer.java:449) в илиg.apache.coyote.http11.InternalNioInputBuffer.access $ 100 (InternalNioInputBuffer.java:50) в org.apache.coyote.http11.InternalNioInputBuffer $ InputBufferImpl.doRead (InternalNioInputBuffh. .IdentityInputFilter.doRead (IdentityInputFilter.java:116) в org.apache.coyote.http11.InternalNioInputBuffer.doRead (InternalNioInputBuffer.java:407) в org.apache.coyote.Request.java. At4 (40). Запрос ()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.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.ndeswtop.wl. filehandler.processRequest (filehandler.java:70) в com.newgen.wfdesktop.servlet.filehandler.doPost (filehandler.java:122) в javax.servlet.http.HttpServlet.service (HttpServlet.java:754) в javax.serv.http.HttpServlet.service (HttpServlet.java:847) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:295) в org.apache.catalina.core.ApplicationFilterCilternFilterChain.java:214) в com.newgen.ibps.security.xss.SECRequestValidator.doFilter (SECRequestValidator.java:231) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (Application) atg ::.catalina.core. 246ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:246) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:214) в org.apache.catalina.core.StandardWrapperValvalvalvalval.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:149) по адресу org.apache.catalina.authenticator.AuthenticatorBase.invoke (AuthenticatorBase.java:420) по адресу org.jboss.as.web.security.SecurityContextAssociationValave.teve.Avevealtextв org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:145) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:97) в org.apache.catalina.core.Vore.Sore.Sore. (StandardEngineValve.java:102) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:340) в org.apache.coyote.http11.Http11NioProcessor.process (Http11NioProcessor.javag: 35)coyote.http11.Http11NioProtocol $ Http11ConnectionHandler.process (Http11NioProtocol.java:911) в org.apache.tomcat.util.net.NioEndpoint $ ChannelProcessor.run (NioEndpoint.java:920) в java.ExunerThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:615) at java.lang.Thread.run (Thread.java:745) Заблокированные собственные синхронизаторы:
    • <0x000000069a402d48> (java.util.concurrent.ThreadPoolExecutor $ Worker)

1 Ответ

0 голосов
/ 24 октября 2019

Hello, поэтому высокая загрузка процессора сама по себе не является проблемой. Вам нужно взять серию дампов потоков и проанализировать их на веб-сайте Samurai или fastthread.io.

These threads are consuming around 15% of CPU each. Они могут потреблять большое количество ресурсов процессора, но не блокируются.

...