[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"
> 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
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