BSD::Resource and getrusage(2)

Dave Rolsky autarch at urth.org
Fri Jul 7 12:10:46 UTC 2006


On Fri, 7 Jul 2006, Philip M. Gollucci wrote:

> Hi, I'm trying do determine the units for one of the fields returned by getrusage(2)
>
> man page on 6.0-RELEASE-p5 says this:
> 2 maxrss maximum shared memory or current resident set
> 3 ixrss integral shared memory
>
> ru_ixrss
> an ``integral'' value indicating the amount of memory used
> by the text segment that was also shared among other pro-
> cesses. This value is expressed in units of
>
> kilobytes * ticks-of-execution.
>
> Ticks are statistics clock ticks.
> The statistics clock has a frequency of sysconf(_SC_CLK_TCK)
>
> which to me implies thats in kilobytes, but to the contrary, we have the following

Doesn't that imply that it's in kb per stat clock ticks?

>> ApacheSizeLimit on bsd systems uses BSD::Resource to get the memory and
>> shared-pages size.
>> 	sub bsd_size_check {
>> 		return (&BSD::Resource::getrusage())[2,3];
>> 	}
>
> I also have a local test based on the recent Apache::SizeLimit work from Dave Rolsky
> where
>
> maxrss > ixrss
> (Apache-Test output snipped)
> #     '14124' maxrss
> #         >
> #     '52080' ixrss
>
> I tried looking in src/sys/kern/kern_resource.c but I didn't find anything that told me the units.
>
> My inkling is the documentation is WRONG.

If it's reported share memory as greater than total memory, then I think 
the docs for BSD::Resource are correct. We need to divide that second 
number (ixrss) by the value of the stat clock tick. Any idea how that can 
be determined?


-dave

/*===================================================
VegGuide.Org                        www.BookIRead.com
Your guide to all that's veg.       My book blog
===================================================*/


More information about the freebsd-questions mailing list