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