On Aug 24, 2006, at 6:00 AM, Philip M. Gollucci wrote:

    b- freebsd is showing a larger resident than size
One is in KB the other is in Bytes -- thats due to the way getrusage (3) reports it.

under GTop.pm though? i'm not using bsd::resource. the libgtop source suggests that its making use of getrusage, but i really don't think its formatting one number different ( top and bsd::resource mix units all the time. Gtop.pm doesn't seem to at all though )

GTop.pm is saying:
        ->size        46534656
        ->resident 52944896

ps is saying
        root     93830 15.8  5.1 54928 51616

It looks to me more like GTOP is just wrong on that.



I'm almost sure the Copy-on-Write reporting or Shared reporting is not correct (see below) Just because the reporting is wrong, doesn't mean that its not actually being shared.
i agree. i just want to be able to figure out what the hell is being shared

I think your best bet for that is to figure out how many children you need to spawn until just before you exhaust your physical ram. Then figure out how much of must be shared for it to not be swapping.
i was scared you'd say that.

Since your parent started at 54928Kb no more then that can ever be shared unless you restart/change stuff.
that i knew.

Seems that on startup 54984Kb is given to a child which is a delta of 56bytes that are not shared at startup.
Thats actually better then most.
that took 3 days of profiling code.

After 1 request, your child is at 55200Kb which means you allocated (55220Kb - 54984Kb) 216bytes None of which can ever be shared; however, when the child is reaped -- by A::SL or similar
it should respawn at 54984Kb
that i expected, and it does work like that.


Based on GTOP metrics above, you need to test the copy-on-write of FreeBSD.. The A::SL docs have a method to do this contributed by Torsten Forsch(sorry if I spelled your name wrong)
i'm gonna try that right now.   thats what is killing me.


P.S. I've got to look up how GTOP from CPAN is interfacing with libtop2?.so and then how it interfaces with getrusage(3)

i actually tried to do it earlier. its damn confusing to me. i couldn't find anything in libgtop2 that was directly calling getrusage, outisde of some tests. so i'd brush up on the gterusage internals before taking a stab at it.

One can see the kernel lies about the shared memory. It simply doesn't
count copy-on-write pages as shared.
i'm fine with it lying. i just don't like it lying differently on every os.

Reply via email to