cpu_sup is a process which supervises the CPU load
and CPU utilization. It is part of the OS_Mon application, see
os_mon(6). Available for Unix,
although CPU utilization values (util/0,1) are only
available for Solaris, Linux and FreeBSD.
The load values are proportional to how long time a runnable
Unix process has to spend in the run queue before it is scheduled.
Accordingly, higher values mean more system load. The returned
value divided by 256 produces the figure displayed by rup
and top. What is displayed as 2.00 in rup, is
displayed as load up to the second mark in xload.
For example, rup displays a load of 128 as 0.50, and
512 as 2.00.
If the user wants to view load values as percentage of machine
capacity, then this way of measuring presents a problem, because
the load values are not restricted to a fixed interval. In this
case, the following simple mathematical transformation can
produce the load value as a percentage:
PercentLoad = 100 * (1 - D/(D + Load))
D determines which load value should be associated with
which percentage. Choosing D = 50 means that 128 is 60%
load, 256 is 80%, 512 is 90%, and so on.
Another way of measuring system load is to divide the number of
busy CPU cycles by the total number of CPU cycles. This produces
values in the 0-100 range immediately. However, this method hides
the fact that a machine can be more or less saturated. CPU
utilization is therefore a better name than system load for this
A server which receives just enough requests to never become
idle will score a CPU utilization of 100%. If the server receives
50% more requests, it will still score 100%. When the system load
is calculated with the percentage formula shown previously,
the load will increase from 80% to 87%.
The avg1/0, avg5/0, and avg15/0 functions
can be used for retrieving system load values, and
the util/0 and util/1 functions can be used for
retrieving CPU utilization values.
When run on Linux, cpu_sup assumes that the /proc
file system is present and accessible by cpu_sup. If it is
not, cpu_sup will terminate.