ColdFusion Muse

Webmaniacs Live - Mike Brunt and CF Server Tuning

Mark Kruger May 20, 2008 10:49 AM Coldfusion Optimization, Conferences Comments (3)

CF Optimization Guru Mike Brunt gave an awesome presentation on tuning ColdFusion. In a short 50 minutes he covered such topics as JVM configuration, multi-server install and load testing. It was an excellent overview. One recommendation (that he made in is lyric British access) was to install See Fusion or Fusion Reactor instead relying on the built in monitor. His take was that, because the monitor is running under ColdFusion, it is too easily become affect itself by performance - or perhaps could become part of the problem instead of being part of the solution.

I had thought, based on a presentation by Adam Lehman on CF 8 a year ago, that the monitor ran in a different JVM space than CF. One of the things I have noticed with the monitor always shows a Flex gateway thread in the request monitoring. That thread is the monitor itself. So I'm thinking Mike might be right. Perhaps the server monitor does exist "inside" of ColdFusion. I like the new server monitor and I've found it useful. But I really like SeeFusion's default view which shows requests and visuals of the heap on one page. I think it is a better aggregate of the things I want to know immediately when I'm looking at a performance problem.

Verbose Garbage Collection

Another excellent tip is a "how to" on enabling verbose garbage collection. This is easy to do. You simply add the following arguments to the JVM.config file and restart ColdFusion.

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

The information is going to be stored in a log file in the default logs directory (like /runtime logs). How would you use this? One of the best ways to use it is to figure out when new generation collection is going on, when tenure (old "stop the world") collection is going on, and how much data is going from new to old. You can get a good picture of what is going on by examining this log information and using your imagination. Check out Mike's blog on GC tuning for a good outline of the process.

  • Share:

3 Comments

  • Ryan Stille's Gravatar
    Posted By
    Ryan Stille | 5/20/08 8:58 AM
    Once you've collected the GC information in the log, you can analyze it with something like HPJtune. This will give you charts + more.
  • Steven Erat's Gravatar
    Posted By
    Steven Erat | 5/20/08 10:00 AM
    I still enjoy reading Mike's articles, and continually learn from them.

    Here's a link (from archive.org to a now defunct blog) that has some more very detailed information about GC logging.

    http://tinyurl.com/4k2nep
  • Mike Brunt's Gravatar
    Posted By
    Mike Brunt | 5/20/08 4:25 PM
    Mark this is very kind of you and I want to amplify some of the things you spoke on during your excellent presentation on all things SQL, from a CF perspective. Once I get through this busy day I will, because mis configured or un tuned SQL and DB's can cause major performance issues.