[Mongrel] deciphering objects.log

Zed A. Shaw zedshaw at zedshaw.com
Fri Oct 12 22:15:07 EDT 2007

On Fri, 12 Oct 2007 11:39:20 -0700
Carlos <carlos at bueno.org> wrote:

> I RTFCd and got this:
>     $objects_out.puts "run,classname,last,count,delta,lenmean,lensd,lenmax"
> So,
> run: a serial number of the request
> classname: obvious
> last: number of object from previous run
> count: number of objects in this run
> delta: last - count
> lenmean: average length of object
> lensd: std deviation
> lenmax: largest-seen (or maybe largest-existing?) object of this class
> Right?

Yep, except len(mean|sd|max) are used for objects that report a length, and that header should be created if the file is first created.  You must have truncated it at some point.

How you use this file is you run a *sequential* number of hits and do it in *production* mode.  When it's done you load it into a spreadsheet or R or some Ruby and you look for the following:

1) Any class which seems to have a count who's delta mean isn't close to 0 for all runs.  A leak can actually be defined in a GC language as: any class who's object count delta over time do not have a mean of 0.
2) Any class who's average length or sd.dev length is gigantic (send_file anyone?).
3) Any classes who have a mean of 0, but have a sd.dev that's massive.  This shows poor GC management since it's a huge number of object being created and destroyed.
4) Any other column that for any class seems to be not like the others.

Also look at bleakhouse.

Zed A. Shaw
- Hate: http://savingtheinternetwithhate.com/
- Good: http://www.zedshaw.com/
- Evil: http://yearofevil.com/

More information about the Mongrel-users mailing list