Calculating kernel/user/idle time

Ian Smith smithi at nimnet.asn.au
Sat Mar 6 08:18:05 UTC 2010


In freebsd-questions Digest, Vol 300, Issue 11, Message: 8
On Fri, 5 Mar 2010 16:58:20 -0600 Dan Nelson <dnelson at allantgroup.com> wrote:
 > In the last episode (Mar 05), Peter Steele said:
 > 
 > > What's the proper way to calculate kernel/user/idle time? I know the raw
 > > values come from sysctl kern.cp_time, but these values need to be
 > > "massaged" based on the number of CPUs and so on.  Can someone explain
 > > briefly what the algorithm is calculating the final percentages
 > > representing these times.
 > 
 > They shouldn't need to be massaged.  Just sample the values at two
 > intervals, and your percentages can be calculated by dividing each delta by
 > the sum of the deltas (since the sum equals the total CPU usage over the
 > interval, by definition).  If you want to calculate per-cpu usage, use the
 > kern.cp_times sysctl instead.

A bit over a year ago mav@ redesigned powerd's algorithm for measuring 
'summary' load for multiple CPUs, as explained with revision 1.21.2.2 at 
http://www.freebsd.org/cgi/cvsweb.cgi/src/usr.sbin/powerd/powerd.c which 
code may prove worthwhile exploring, or stealing.

cheers, Ian


More information about the freebsd-questions mailing list