On Linux, the sysinfo() call can be used to obtain 1, 5 and 15 minute processor usage averages. While not available in the perl core, you can access it by writing a XS wrapper, or, even easier, use Inline::C:

use warnings; use strict; use Inline "C"; my $one_minute_avg = one_minute_avg(); printf "Load avg: $one_minute_avg\n"; __END__ __C__ #include <sys/sysinfo.h> long one_minute_avg() { struct sysinfo si; if(sysinfo(&si) == 0) { return si.loads[0]; } else { return -1L; } }

For the XS version and some more info (provided you don't mind it's in German), check out this article. The numbers returned are longs, not sure how they relate to what uptime is returning.

Oh, and the /proc/loadavg pseudo file shows the load average on Linux also, as in

0.63 0.65 0.79 1/112 6661

In reply to Re: Finding out Processor Usage by saintmike
in thread Finding out Processor Usage by stvn

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.