Forum

This content is now out of date.

Visit Our Community

CPU 100%

I have a dashboard with some reports. Normally, it works fine and data and reports are loaded quite fast. But sometimes, for the same data, reports are never loaded. There's a message saying "Loading report" and that's all.
At the same time, CPU usage becomes 100%, due to a high consuming java process. I have used jconsole tool for debugging and the top threads consuming CPU are app threads, of this type:

com.hof.mi.util.FormatTables.findFilter(FormatTables.java:802)
com.hof.mi.charting.format.ChartFormatter.getWrappedDefault(ChartFormatter.java:752)
com.hof.mi.charting.format.ChartFormatter.getFormat(ChartFormatter.java:723)
com.hof.mi.charting.format.ChartFormatter.getFormat(ChartFormatter.java:715)
com.hof.mi.charting.format.ChartFormatter.generatePlot(ChartFormatter.java:373)
com.hof.mi.charting.format.CategoryFormatter.applyFormats(CategoryFormatter.java:99)
com.hof.mi.charting.format.ChartFormatter.doFormatting(ChartFormatter.java:91)
com.hof.mi.export.ReportResultBean.renderChart(ReportResultBean.java:5581)
com.hof.mi.export.HtmlExporter.A(HtmlExporter.java:7213)
com.hof.mi.export.HtmlExporter.A(HtmlExporter.java:3719)
com.hof.mi.export.HtmlExporter.A(HtmlExporter.java:3421)
com.hof.mi.export.HtmlExporter.A(HtmlExporter.java:2838)
com.hof.mi.export.HtmlExporter.D(HtmlExporter.java:2204)
com.hof.mi.export.HtmlExporter.C(HtmlExporter.java:923)
com.hof.mi.export.HtmlExporter.export(HtmlExporter.java:872)
com.hof.mi.export.HtmlExporter.exportDashboard(HtmlExporter.java:11868)
com.hof.mi.export.HtmlExporter.exportDashboard(HtmlExporter.java:11534)
com.hof.mi.web.action.MIDashboardAjaxAction.A(MIDashboardAjaxAction.java:3796)
com.hof.mi.web.action.MIDashboardAjaxAction.runAction(MIDashboardAjaxAction.java:863)
com.hof.web.action.AjaxAction.execute(AjaxAction.java:152)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525)
javax.servlet.http.HttpServlet.service(HttpServlet.java:643)
javax.servlet.http.HttpServlet.service(HttpServlet.java:723)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
com.hof.servlet.BrowserHeaderFilter.doFilter(BrowserHeaderFilter.java:40)
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
java.lang.Thread.run(Unknown Source)

If I run SQL statements of these reports directly in MySQL (the database I use), data are retrieved quite fast, so I guess it�s not a problem neither with database nor with jdbc connection.

If I shutdown Tomcat and restart it again, everything seems to work fine until reports are not loaded again without any apparent reason.

Any idea about what can be happening?

Some other useful information:
System Properties
Application Version: 7.0
java.version: 1.7.0_04
os.name: Windows Server 2008 R2
os.arch: amd64
os.version: 6.1

Available Processors: 4
Memory in Use: 234,6 MB
JVM current total memory: 618,7 MB
Free memory: 384,1 MB
JVM max memory: 1,8 GB
Application Server: Apache Tomcat/6.0.37
Servlet API Version: 2.5
JSP API Version: 2.1
Hello Guest,

This is always a difficult question to answer as we don't have all the details about your reports / dashboards, or what else might be going on within the application (scheduled broadcasts, caching, etc). Also, how many users are active, etc.

What build of 7.0 are you using? This could also be a factor if you are on an older build. Here are some recommendations that we have.

1. Upgrade your instance to the latest version and build.
2. Increase your available Java memory by following this guide. JVM Max Memory
3. Review the doc that can found on this link. Server Specifications

If none of this helps and you experience the 'loading report' issue again, please send in all the YF log files and note the time the issue occurred. If it's easier, you can send them to the support email and reference the subject line of this forum post.

Thank you,

Kyle