应用服务器CPU总是以50%的速度占用

时间:2014-02-05 00:58:33

标签: multithreading apache jboss load

在我的应用程序中进行负载测试后,即使测试后系统中没有任何运行,我的应用程序服务器CPU仍会以50%的速度运行。当我查看线程转储时,我可以在转储中看到至少24个BLOCKED线程。他们中的大多数都与spring框架,mule框架等有关....我的应用程序没有任何特定内容。

enter image description here

请参阅下面的一些线程转储的堆栈跟踪。

"ajp-10.40.44.47-8009-116" daemon prio=6 tid=0x000000000cdce800 nid=0x7ac waiting for monitor entry [0x000000003cf1e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:291)
    - waiting to lock <0x00000000c274dab8> (a org.jboss.web.tomcat.service.WebCtxLoader$ENCLoader)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    at org.mule.util.ClassUtils.loadClass(ClassUtils.java:340)
    at org.mule.util.ClassUtils.instanciateClass(ClassUtils.java:437)
    at org.mule.transport.service.DefaultTransportServiceDescriptor.createEndpointURIBuilder(DefaultTransportServiceDescriptor.java:448)
    at org.mule.endpoint.MuleEndpointURI.initialise(MuleEndpointURI.java:222)
    at org.mule.transport.servlet.MuleReceiverServlet.getReceiverForURI(MuleReceiverServlet.java:308)
    at org.mule.transport.servlet.MuleReceiverServlet.doAllMethods(MuleReceiverServlet.java:241)
    at org.mule.transport.servlet.MuleReceiverServlet.doPost(MuleReceiverServlet.java:198)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at org.mule.transport.servlet.MuleReceiverServlet.service(MuleReceiverServlet.java:180)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

"financials.pctogl.staging.partitioned.jms.taskExecutor-9" prio=6 tid=0x0000000009b8f000 nid=0x1730 waiting for monitor entry [0x000000002cf1f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.springframework.integration.util.ErrorHandlingTaskExecutor$1.run(ErrorHandlingTaskExecutor.java:52)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

"[powercomp].iip.flow.drools.service.stage1.01" prio=6 tid=0x00000000063af800 nid=0x1608 waiting for monitor entry [0x000000002979f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.mule.work.WorkerContext.run(WorkerContext.java:315)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

"task-scheduler-10" prio=6 tid=0x000000000d075000 nid=0xcf0 waiting for monitor entry [0x000000002649f000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.springframework.integration.channel.MessagePublishingErrorHandler.handleError(MessagePublishingErrorHandler.java:83)
    at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:59)
    at org.springframework.scheduling.concurrent.ReschedulingRunnable.run(ReschedulingRunnable.java:81)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)

"UDP ucast,10.40.44.47:61710" prio=6 tid=0x0000000009b82800 nid=0xeb0 waiting for monitor entry [0x000000001771e000]
   java.lang.Thread.State: BLOCKED (on object monitor)
    at org.apache.log4j.Category.callAppenders(Category.java:201)
    - waiting to lock <0x00000000a197e360> (a org.apache.log4j.spi.RootLogger)
    at org.apache.log4j.Category.forcedLog(Category.java:388)
    at org.apache.log4j.Category.log(Category.java:853)
    at sun.reflect.GeneratedMethodAccessor294.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.commons.logging.impl.Log4jProxy.log(Log4jProxy.java:301)
    at org.apache.commons.logging.impl.Log4jProxy.error(Log4jProxy.java:283)
    at org.apache.commons.logging.impl.Log4JLogger.error(Log4JLogger.java:208)
    at org.jgroups.protocols.TP.down(TP.java:1205)
    at org.jgroups.protocols.TP$ProtocolAdapter.down(TP.java:2316)
    at org.jgroups.protocols.Discovery.down(Discovery.java:374)
    at org.jgroups.protocols.MERGE2.down(MERGE2.java:175)
    at org.jgroups.protocols.FD_SOCK.down(FD_SOCK.java:362)
    at org.jgroups.protocols.FD.sendHeartbeatResponse(FD.java:325)
    at org.jgroups.protocols.FD.up(FD.java:235)
    at org.jgroups.protocols.FD_SOCK.up(FD_SOCK.java:309)
    at org.jgroups.protocols.MERGE2.up(MERGE2.java:144)
    at org.jgroups.protocols.Discovery.up(Discovery.java:264)
    at org.jgroups.protocols.PING.up(PING.java:273)
    at org.jgroups.protocols.TP$ProtocolAdapter.up(TP.java:2327)
    at org.jgroups.protocols.TP.passMessageUp(TP.java:1261)
    at org.jgroups.protocols.TP.access$100(TP.java:49)
    at org.jgroups.protocols.TP$IncomingPacket.handleMyMessage(TP.java:1838)
    at org.jgroups.protocols.TP$IncomingPacket.run(TP.java:1817)
    at java.util.concurrent.ThreadPoolExecutor$CallerRunsPolicy.rejectedExecution(ThreadPoolExecutor.java:1746)
    at org.jgroups.util.ShutdownRejectedExecutionHandler.rejectedExecution(ShutdownRejectedExecutionHandler.java:39)
    at java.util.concurrent.ThreadPoolExecutor.reject(ThreadPoolExecutor.java:767)
    at java.util.concurrent.ThreadPoolExecutor.execute(ThreadPoolExecutor.java:658)
    at org.jgroups.protocols.TP.dispatchToThreadPool(TP.java:1366)
    at org.jgroups.protocols.TP.receive(TP.java:1333)
    at org.jgroups.protocols.UDP$UcastReceiver.run(UDP.java:960)
    at java.lang.Thread.run(Thread.java:662)

0 个答案:

没有答案