Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 6 Mar 2010 19:17:48 +1100 (EST)
From:      Ian Smith <smithi@nimnet.asn.au>
To:        Dan Nelson <dnelson@allantgroup.com>
Cc:        freebsd-questions@freebsd.org, Peter Steele <psteele@maxiscale.com>
Subject:   Re: Calculating kernel/user/idle time
Message-ID:  <20100306183731.N17960@sola.nimnet.asn.au>
In-Reply-To: <20100306065621.D5AC91065704@hub.freebsd.org>
References:  <20100306065621.D5AC91065704@hub.freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
In freebsd-questions Digest, Vol 300, Issue 11, Message: 8
On Fri, 5 Mar 2010 16:58:20 -0600 Dan Nelson <dnelson@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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20100306183731.N17960>