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>