Hi Darren,
The server is certainly experiencing CPU starvation (99-100%
utilisation), however I can't see anything to point to memory/heap
starvation. According to resource.log, that server had very high CPU
utalisation for the past hour, however used memory was sitting at
around 35-55%, with a delta of around 10% (up/down) for each row in
the resource.log file, which indicates that GC was running.
There were 8 very long running requests at the time, with most of them
originating from the TransferORM softReferenceAdapter.
None of the threads were waiting on external resources such as JDBC/
HTTP, although we do use Javaloader and a handful of Java classes.
The other interesting thing from the stack trace is that a lot of
threads where waiting on locks.
eg:
"Reference Handler" daemon prio=10 in Object.wait()
java.lang.Object.wait(Object.java:???)[Native Method]
- waiting on <0x410101e9> (a java.lang.ref.Reference$Lock)
AND
"jms-fifo-2" prio=5 in Object.wait()
java.lang.Object.wait(Object.java:???)[Native Method]
- waiting on <0x1bf388fd> (a jrun.jms.core.threads.FIFOQueue)
Even FR was waiting on locks:
"FusionReactor Web Server (Server Thread Pool Member Thread-680)"
prio=5 in Object.wait()
java.lang.Object.wait(Object.java:???)[Native Method]
- waiting on <0x108ff831> (a com.intergral.fusionreactor.core.e.c$_c)
java.lang.Object.wait(Object.java:485)
com.intergral.fusionreactor.core.e.c$_c.run(ThreadPoolImpl.java:138)
I'm assuming that <0x108ff831> is the memory address of the method we
are waiting on. Is there any way to associate that with the ThreadID
and therefore see what is at the root of the waiting/locks?
I've included the full stack trace of one of the threads below. I'm
not sure if I should post the entire stack trace as they are very
large.
Thread Stack Trace
Trace Time: 11:39:48.766 21-Oct-2009
Thread ID: 0x3131 (12593)
Thread Name: jrpp-1043
Priority: 5
Hashcode: 906396441
State: RUNNABLE
"jrpp-1043" prio=5 runnable
java.lang.String.toLowerCase(null:???)
java.lang.String.toLowerCase(null:???)
coldfusion.tagext.validation.CFTypeValidatorFactory.getValidator
(CFTypeValidatorFactory.java:71)
coldfusion.runtime.UDFMethod.validateValueType(UDFMethod.java:151)
coldfusion.runtime.UDFMethod._validateArg(UDFMethod.java:785)
coldfusion.runtime.UDFMethod._validateArg(UDFMethod.java:802)
cfcandidates2eCandidate40BED7468572FABBE4FA4D0BE4186925872etransfer525672312$funcACTIONAFTERUPDATETRANSFEREVENT.runFunction
(D:\JO3\jobOffice\config\transfer\definitions
\candidates...@BED7468572FABBE4FA4D0BE418692587.transfer:263)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfSoftReferenceAdapter2ecfc1767853770$funcACTIONAFTERUPDATETRANSFEREVENT.runFunction
(D:\JO3\jobOffice\transfer\com\events\adapter\SoftReferenceAdapter.cfc:
100)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfAfterUpdateObserverCollection2ecfc98942520$funcFIREACTIONMETHOD.runFunction
(D:\JO3\jobOffice\transfer\com\events\collections
\AfterUpdateObserverCollection.cfc:44)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)
cfAbstractBaseObservable2ecfc1410406389$funcFIREEVENT.runFunction(D:
\JO3\jobOffice\transfer\com\collections\AbstractBaseObservable.cfc:74)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfEventManager2ecfc820165474$funcFIREEVENT.runFunction(D:\JO3\jobOffice
\transfer\com\events\EventManager.cfc:238)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)
cfEventManager2ecfc820165474$funcFIREAFTERUPDATEEVENT.runFunction(D:
\JO3\jobOffice\transfer\com\events\EventManager.cfc:189)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfTransfer2ecfc1432092572$funcUPDATE.runFunction(D:\JO3\jobOffice
\transfer\com\Transfer.cfc:269)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)
cfTransfer2ecfc1432092572$funcSAVE.runFunction(D:\JO3\jobOffice
\transfer\com\Transfer.cfc:178)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfEmailTransfer2ecfc878281797$funcSAVEEMAIL.runFunction(D:
\JO3\jobOffice\sys\jo\core\transfer\EmailTransfer.cfc:36)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfEmailFactory2ecfc1508413328$funcSAVEEMAIL.runFunction(D:
\JO3\jobOffice\sys\jo\core\factory\EmailFactory.cfc:130)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfEmailConfigurationManager2ecfc669832351$funcCOPYEMAILATTACHMENTS.runFunction
(D:\JO3\jobOffice\sys\jo\core\m2listener\EmailConfigurationManager.cfc:
493)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.filter.SilentFilter.invoke(SilentFilter.java:47)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:463)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:453)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:320)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2222)
coldfusion.tagext.lang.InvokeTag.doEndTag(InvokeTag.java:362)
cfEventInvoker2ecfc294220709$funcINVOKELISTENER.runFunction(D:
\JO3\jobOffice\MachII\framework\invokers\EventInvoker.cfc:67)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfNotifyCommand2ecfc494342107$funcEXECUTE.runFunction(D:\JO3\jobOffice
\MachII\framework\commands\NotifyCommand.cfc:68)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfEventHandler2ecfc1608753602$funcHANDLEEVENT.runFunction(D:
\JO3\jobOffice\MachII\framework\EventHandler.cfc:62)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfRequestHandler2ecfc1676430457$funcHANDLEEVENT.runFunction(D:
\JO3\jobOffice\MachII\framework\RequestHandler.cfc:330)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)
cfRequestHandler2ecfc1676430457$funcHANDLENEXTEVENT.runFunction(D:
\JO3\jobOffice\MachII\framework\RequestHandler.cfc:278)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)
cfRequestHandler2ecfc1676430457$funcPROCESSEVENTS.runFunction(D:
\JO3\jobOffice\MachII\framework\RequestHandler.cfc:219)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.CfJspPage._invokeUDF(CfJspPage.java:2471)
cfRequestHandler2ecfc1676430457$funcHANDLEREQUEST.runFunction(D:
\JO3\jobOffice\MachII\framework\RequestHandler.cfc:149)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:418)
coldfusion.runtime.UDFMethod$ReturnTypeFilter.invoke(UDFMethod.java:
360)
coldfusion.runtime.UDFMethod$ArgumentCollectionFilter.invoke
(UDFMethod.java:324)
coldfusion.filter.FunctionAccessFilter.invoke
(FunctionAccessFilter.java:59)
coldfusion.runtime.UDFMethod.runFilterChain(UDFMethod.java:277)
coldfusion.runtime.UDFMethod.invoke(UDFMethod.java:192)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:448)
coldfusion.runtime.TemplateProxy.invoke(TemplateProxy.java:308)
coldfusion.runtime.CfJspPage._invoke(CfJspPage.java:2272)
cfmach2dii2ecfm917874472.runPage(D:\JO3\wwwroot\mach-ii.cfm:128)
coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:388)
coldfusion.runtime.CfJspPage._emptyTcfTag(CfJspPage.java:2661)
cfindex2ecfm665012002.runPage(D:\JO3\wwwroot\be\index.cfm:18)
coldfusion.runtime.CfJspPage.invoke(CfJspPage.java:196)
coldfusion.tagext.lang.IncludeTag.doStartTag(IncludeTag.java:388)
coldfusion.filter.CfincludeFilter.invoke(CfincludeFilter.java:65)
coldfusion.filter.ApplicationFilter.invoke(ApplicationFilter.java:279)
coldfusion.filter.MonitoringFilter.invoke(MonitoringFilter.java:40)
coldfusion.filter.PathFilter.invoke(PathFilter.java:86)
coldfusion.filter.ExceptionFilter.invoke(ExceptionFilter.java:70)
coldfusion.filter.ClientScopePersistenceFilter.invoke
(ClientScopePersistenceFilter.java:28)
coldfusion.filter.BrowserFilter.invoke(BrowserFilter.java:38)
coldfusion.filter.NoCacheFilter.invoke(NoCacheFilter.java:46)
coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:38)
coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
coldfusion.CfmServlet.service(CfmServlet.java:175)
coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:
89)
jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
com.intergral.fusionreactor.filter.FusionReactorFilter.b
(FusionReactorFilter.java:386)
com.intergral.fusionreactor.filter.FusionReactorFilter.c
(FusionReactorFilter.java:264)
com.intergral.fusionreactor.filter.FusionReactorFilter.doFilter
(FusionReactorFilter.java:174)
jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
coldfusion.monitor.event.MonitoringServletFilter.doFilter
(MonitoringServletFilter.java:42)
coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
jrun.servlet.FilterChain.service(FilterChain.java:101)
jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:
286)
jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:
543)
jrun.servlet.jrpp.JRunProxyService.invokeRunnable
(JRunProxyService.java:203)
jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable
(ThreadPool.java:320)
jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable
(ThreadPool.java:428)
jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable
(ThreadPool.java:266)
jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)