BSD::Resource and getrusage(2)
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 CPAN rt: https://rt.cpan.org/Ticket/Display.html?id=18230 I'll paste the import part of this here so you don't have to follow the link 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. Philip M. Gollucci ([EMAIL PROTECTED]) 323.219.4708 Consultant / http://p6m7g8.net/Resume/resume.shtml Senior Software Engineer - TicketMaster - http://ticketmaster.com 1024D/A79997FA F357 0FDD 2301 6296 690F 6A47 D55A 7172 A799 97F In all that I've done wrong I know I must have done something right to deserve a hug every morning and butterfly kisses at night. ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: BSD::Resource and getrusage(2)
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.Orgwww.BookIRead.com Your guide to all that's veg. My book blog ===*/ ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: BSD::Resource and getrusage(2) [PATCH]
Doesn't that imply that it's in kb per stat clock ticks? I think you read it backwards, but I agree with the outcome. svn diff Index: lib/Apache/SizeLimit.pm === --- lib/Apache/SizeLimit.pm (revision 419830) +++ lib/Apache/SizeLimit.pm (working copy) @@ -247,8 +247,15 @@ return ( $size, 0 ); } +## rss is in KB +## ixrss is in BYTES +## this is true on at least FreeBSD, OpenBSD, NetBSD, and Darwin sub _bsd_size_check { -return ( BSD::Resource::getrusage() )[ 2, 3 ]; +my @results = BSD::Resource::getrusage(); +my $max_rss = $results[2]; +my $max_ixrss = int ( $results[3] / 1024 ); + +return ( $max_rss, $max_ixrss ); } -- Philip M. Gollucci ([EMAIL PROTECTED]) 323.219.4708 Consultant / http://p6m7g8.net/Resume/resume.shtml Senior Software Engineer - TicketMaster - http://ticketmaster.com 1024D/A79997FA F357 0FDD 2301 6296 690F 6A47 D55A 7172 A799 97F It takes a minute to have a crush on someone, an hour to like someone, and a day to love someone, but it takes a lifetime to forget someone... ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]
Re: BSD::Resource and getrusage(2) [PATCH]
server localhost:8529 started t/apache/basic.ok t/apache/deprecatedok t/pod..ok All tests successful. Files=3, Tests=18, 2 wallclock secs ( 0.98 cusr + 0.12 csys = 1.09 CPU) [warning] server localhost:8529 shutdown [That was from svn trunk, after patch applied] -- Philip M. Gollucci ([EMAIL PROTECTED]) 323.219.4708 Consultant / http://p6m7g8.net/Resume/resume.shtml Senior Software Engineer - TicketMaster - http://ticketmaster.com 1024D/A79997FA F357 0FDD 2301 6296 690F 6A47 D55A 7172 A799 97F It takes a minute to have a crush on someone, an hour to like someone, and a day to love someone, but it takes a lifetime to forget someone... ___ freebsd-questions@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-questions To unsubscribe, send any mail to [EMAIL PROTECTED]