[Looking for Charlie's main web site?]

CF 8 Monitor: what's the impact on production? you may be surprised

The new CF8 monitor is of course very powerful, and naturally some are immediately concerned about its overhead, especially if they're considering running it in production. And it's indeed true that depending on what you enable, it can be very resource-intensive and could even bring down a server under load. But you don't NEED to enable all the features of the monitor to get benefit. I'll explain here what they are and what their impact is.

In my next entry, I'll show you how you can even get value from the monitor even if you don't enable ANY of the monitoring features. Sound illogical?

The point to note is that there are three buttons at the top of the monitoring page which "start" different monitoring features. So what are the implications of starting each of the optional monitoring features?

  • start memory tracking: this has the highest overhead, very substantial. Even on a low-traffic developer machine, you'll see a big hit from running this. Reserve its use for only brief periods (minutes, seconds) to gather some info for analysis. Use in production only in emergency.
  • start profiling: this has much less overhead. The help page for the monitor calls it "minimal"
  • start monitoring: again, as with profiling, it's labeled as having "minimal" overhead.

Definitely check out that help page (from the front page of the monitor) to learn more about what each button does.

So what value is there with none of them enabled? I'll pick that up in the next entry.

But if you hear someone say "don't use the monitor in production", please make sure they're clear on all this. There are 3 features you can enable, or none at all, and each provides different info at different costs--some of it zero. Who says there's no such thing as a free lunch?

Comments
Charlie, I know you are telling folks to not be scared to use SM on production... but I just want to say that my experience, and this is _just_ my experience, showed that it did seem to impact my performance a bit. Specifically just profiling/monitoring slowed down my blog enough where I felt I needed to turn it off. It wasn't "horrible". But I definitely noticed it and was worried my readers would be affected by it.

I'm just saying - keep it in mind.
# Posted By Raymond Camden | 6/15/07 1:42 PM
We are working with Ray and will try to fix any issue to make it better.

Thanks,
Hemant
# Posted By Hemant | 6/15/07 1:49 PM
Sure, but to be clear, you're talking about enabling the "start monitoring" and "start profiling" features. I don't say that "those" are free. I just say what the docs say, which is that it's minimal". Of course, that's a vague word, so your warning to people on that point should stand.

Still, as the next entry clarifies, there does seem to be an awful lot of good info that can be obtained even without ANY of the "start" features enabled. And that, at a minimum, seems an excellent reason to still use the monitor in production. People just need to be sensitive to what costs what. :-)
# Posted By Charlie Arehart | 6/15/07 1:55 PM
Yep, that is my intent with the warning. Just... be careful I guess. Thats a nice and vague warning as well.
# Posted By Raymond Camden | 6/15/07 2:06 PM
@Ray, I'd really like to see you quantify your experience. I've run monitoring and profiling on a production server with *minimal* performance overhead. In fact the Adobe Hosted Services production servers ran with monitoring and profiling enabled as a matter of course so that we could analyze usage and performance data under real load and tune the system.

The memory tracking is, indeed, fairly resource intensive (I seem to recall about a 20-30% overhead in most situations but higher during extensive object creation, e.g., framework startup). I would definitely advise keeping memory tracking off in production except for very brief periods to debug / analyze specific problems. The main impact seems to be that memory usage increases (presumably to store the data that lets CF8 track memory usage?) and that memory does not always seem to be freed up when memory tracking is turned off.

My experience so far has been that monitoring and profiling truly do have minimal impact and can be left enabled all the time. That has been on Red Hat Linux and Mac OS X, on fairly fast servers. I'm sure it's a YMMV kinda thing tho'...
# Posted By Sean Corfield | 6/15/07 2:40 PM
Quantify? You want me to sit there and do measurements with stuff off/on? Thats a lot of work. ;) I'm just sharing what I saw, that's all. Again - I may have been over reacting to what I perceived as an overly slow response after I had turned things on. Shoot - I'd be happy to turn it on again and let folks comment here if they think the site is responding slower than it does normally.
# Posted By Raymond Camden | 6/15/07 3:28 PM