Skip to main content
Known Participant
July 19, 2012
Question

Coldfusion 9 random slowness

  • July 19, 2012
  • 1 reply
  • 4194 views

Hi guys and gals,

I have a Coldfusion 9 installation with MySQL 5.5 on Windows Server 2008 R2 that is about 2 years old. Mostly problem free. Reasonably well configured with very fast page loading times.

Recently it began experiencing intermittent slowdowns. It would run fast for days (both peak days and weekends) with practically no CPU consumption (in low teens usually), then all of a sudden it would spike up to 80-100% and would run like that for days (both peak and weekends). Then after being slow for days it would return back to normal on its own.

I've been trying to isolate the problem with MySQL, but all queries are optimized and debug output shows then as executing in 0 seconds or being cached. Yet page loading times are high.

The logs in C:\ColdFusion9\runtime\logs show nothing unusual. Memory tracking in server monitor is turned OFF.

Any suggestions how to hunt down and troubleshoot this random slowness would be greatly appreciated!

Many thanks

Sasha.

    This topic has been closed for replies.

    1 reply

    Legend
    July 20, 2012

    Sasha, It is JRun.EXE that is utilising the 80-90% of CPU?

    You say CF Server Monitor is present so I expect Enterprise licence. Without Memory Tracking enabled, Server Monitor > Statistics > Memory Usage > Memory Usage Summary is still available and while it is not showing all the CF JVM memory spaces or provide much detail on garbage collection it may provide a hint if there is some kind of New or Old memory issue. Perhaps you can attach a picture how Memory Usage Summary looks when system is operating normal versa when CPU is bound.

    You could try JVM logging to get some more details and see if there is a garbage collection or memory problem with one of the New, Old or Permanent memory spaces. Let me know if you want to take the time to enable that and need some know how then I will post details.

    HTH, Carl.

    Sasha365iAuthor
    Known Participant
    July 20, 2012

    Carl, thanks for your reply.

    I can enable memory tracking. What should I be looking for once enabled? Also how do I do JVM logging?

    Thank you!

    Legend
    July 20, 2012

    Not sure CF Mon Memory Tracking is going to assist so I will leave that to other responders to thread case there is something to gain.

    Some questions CF9 update level and hotfix? 64 or 32 bit? CF Java version eg 1.6.0_17?

    So on to JVM logging. Backup or take copy of JVM.CONFIG file. Edit JVM CONFIG and add this syntax without CR/LF to Arguments  section (copy pasting to from forum page can be odd take care):

    -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -verbose:gc -Xloggc:cfjvmGC.log

    Restart CF application service for JVM.CONFIG to be re-read and logging to commence.

    Creates a log file in ColdFusion9\runtime\bin\cfjvmGC.log Jrun4\bin\ in case multiserver. The log details can be a bit hard to understand so use a tool eg GCViewer to graphically examine the log file contents:

    http://www.tagtraum.com/gcviewer.html

    I suspect GCViewer display of log file from when system is working normally to when CPU is bound will look significantly different so post back your findings. If not then likely not a CF JVM issue, something you can discount as issue, move on for other causes and at worst something learned. Remember to switch logging off when you are finished with it by removing syntax from JVM.CONFIG and restarting CF.

    JVM.CONFIG syntax example only with JVM logging turned on:

    # Arguments to VM

    java.args=-server -Xmx512m -Dsun.io.useCanonCaches=false -XX:MaxPermSize=192m -XX:+UseParallelGC -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -verbose:gc -Xloggc:cfjvmGC.log -Dcoldfusion.rootDir=etc

    HTH again, Carl.