Doug Scott wrote:

> Since Solaris does not seem to have anywhere that you can get a single 
> average CPU usage across all online CPU's (linux you can just read 
> /proc/stat I think). The code I wrote uses values (cpu ticks) from 
> kstat, subtracts from the previous and computes the average within the 
> code.

man getloadavg(3C):

NAME
      getloadavg - get system load averages

SYNOPSIS
      #include <sys/loadavg.h>

      int getloadavg(double loadavg[], int nelem);


DESCRIPTION
      The getloadavg() function returns the number of processes in
      the  system run queue averaged over various periods of time.
      Up to nelem samples are retrieved and assigned to successive
      elements  of  loadavg[].  The  system imposes a maximum of 3
      samples, representing averages over the last 1,  5,  and  15
      minutes,  respectively.  The LOADAVG_1MIN, LOADAVG_5MIN, and
      LOADAVG_15MIN indices, defined in  <sys/loadavg.h>,  can  be
      used to extract the data from the appropriate element of the
      loadavg[] array.

RETURN VALUES
      Upon successful completion, the number of  samples  actually
      retrieved is returned. If the load average was unobtainable,
      -1 is returned and errno is set to indicate the error.

ERRORS
      The getloadavg() function will fail if:

      EINVAL    The number of elements specified is less than 0.


USAGE
      If the caller is in a non-global zone and the pools facility
      is  active,  the  behavior  of getloadavg() is equivalent to
      that  of  pset_getloadavg(3C)  called  with  psetid  set  to
      PS_MYID.

ATTRIBUTES
      See attributes(5) for descriptions of the  following  attri-
      butes:


- Bart

-- 
Bart Smaalders                  Solaris Kernel Performance
barts at cyber.eng.sun.com              http://blogs.sun.com/barts

Reply via email to