Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Have you tried Linux::Smaps? []

    From the CPAN description: "The /proc/PID/smaps files in modern linuxes provides very detailed information about a processes memory consumption. It particularly includes a way to estimate the effect of copy-on-write. This module implements a Perl interface."

    • I'd recalled /proc/#/smaps also wasn't available on the 2.6.10. Taking a quick look at Linux::Smaps, it appears I can consume text of the format:

      00602000-00c39000 rw-p 00602000 00:00 0                                  [heap]
      Size:               6364 kB
      Rss:                6340 kB
      Shared_Clean:          0 kB
      Shared_Dirty:          0 kB
      Private_Clean:         0 kB
      Private_Dirty:      6340 kB
      Referenced:         1064 kB

      Apparently a page is counted in Private_* if the only the process being examined has that page. If any other processes also use the page, it is counted in Shared_*. Caveats if you're swapping.

      I don't yet know how smem works.

      exmap will let me fully find out exactly what's being shared. Or not.

      • But for practical purposes of controlling apache process growth, just counting the private memory is the right thing to do (or counting all the root process's memory + just private from the kids to get a reasonable total.)

        I'm curious to know just what you are seeing shared in apache children that isn't copy-on-write memory?