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