Hi Perrin, Does this report or help illustrate shared COW pages between apache processes? I thought that particular part of /proc/<pid>/statm reported the pages potentially shared with other processes as they are part of dynamically loaded libraries.
On my 2.6 kernel:
bash-2.05b$ echo $$
25964
bash-2.05b$ cat /proc/25964/statm
793 449 582 197 0 596 0
bash-2.05b$
According to 'man proc'
/proc/[number]/statm
Provides information about memory status in pages. The
columns
are:
size total program size
resident resident set size
share shared pages
trs text (code)
drs data/stack
lrs library
dt dirty pages
Of course the man page isn't all that illuminating.
When I check top, the SHARE column says 2328, which is exactly 4 (page
size) x the 'share' number column number from top. From what I
understand so far, this does not represent COW pages shared between
related processes.
Do I have the wrong end of the stick here? (Id rather I did, because I
have been using GTop to test my stuff before releasing).
Best,
On Thu, 2005-02-10 at 18:32 -0500, Perrin Harkins wrote:
> On Thu, 2005-02-10 at 18:28 -0500, Richard F. Rebel wrote:
> > As far as I know, especially on linux, there is no way to tell exactly
> > how 'shared' your apache processes are, except by using apache+mod_perl
> > with GTop (and it's associated apache module). I certainly don't know
> > of a way to get this figure from the command line. Maybe someone else
> > on the list does.
>
> You can read it from /proc. From Apache::SizeLimit:
>
> sub linux_size_check {
> my($size, $resident, $share) = (0, 0, 0);
>
> my $file = "/proc/self/statm";
> if (open my $fh, "<$file") {
> ($size, $resident, $share) = split /\s/, scalar <$fh>;
> close $fh;
> } else {
> error_log("Fatal Error: couldn't access $file");
> }
>
> # linux on intel x86 has 4KB page size...
> return ($size * 4, $share * 4);
> }
>
> - Perrin
>
--
Richard F. Rebel <[EMAIL PROTECTED]>
WhenU.com
signature.asc
Description: This is a digitally signed message part
