I thought enabling the new ColdFusion 8 server monitor was not supposed to affect your applications, but apparently it can. This morning all of the sudden I could not get one of my coldfusion applications to start, it kept throwing timeout errors in weird, almost random places. When I removed the offending piece of code I would just get a timeout error somewhere else.
I finally tracked it down to the fact that someone enabled the server monitor on this server. Turning it off let the application start up just fine. This is a ModelGlue/ColdSpring application, that may have something to do with it because we had other ColdFusion apps running ok on this same server.
I was able to turn monitoring back on after the application had started. The application scope was only using 3.3kb of memory, much less than some of the other applications. My lone session in the application was taking up 76kb though, which seems kind of high.
Thoughts???
Henry Ho says:
From what I remember, Server monitor is not meant for monitoring live server for an extend period of time. It was a tool that one should use to log, say, a day to inspect the CF app performance. As for what your app couldn’t start, I’m not sure. Was it built on any framework?
17 September 2008, 11:59 amJames Morrow says:
We’ve observed nearly identical behavior on a couple of dev boxes here recently- we’ve got a quite large application built on cf8 and mach-ii, and if server monitor is enabled, CF will die on application initialization, usually with a gc overhead limit exceeded – out of heap space exception.
Painful time was spent trying to figure out wth was going on, and it just ended up being server monitor having been enabled.
One item to note is that server monitoring being enabled appears to be persistent across restarts – CF or OS.
17 September 2008, 12:39 pmHenry Ho says:
I’ve experienced somewhat similar behavior with Model-Glue as well.
17 September 2008, 1:11 pmAndy Neale says:
We have also experienced memory usage problems as a result of using the server monitor. One part of our application creates an output file by interleaving and sequencing a group of recordsets. The function was working perfectly in all of our test environments, but when run on our production server, the JVM memory usage would ramp up to 100% within seconds of this function being run, resulting in the server hanging. After many hours of head-scratching – comparing code between test and live environments, comparing ColdFusion Administrator settings, comparing JRun settings – it turned out that the Monitoring and Profiling options had been switched on in the server monitor on the production system. Two mouse clicks later – problem solved.
Henry is right – the server monitor is designed more as a debugging tool than a permanent server monitoring solution – if you want the latter, then you should investigate FusionReactor, which provides a broadly similar set of monitoring tools but with a minimal footprint and no unwanted side effects.
18 September 2008, 3:01 am