Initial 6.1 questions
Robert Watson
rwatson at FreeBSD.org
Tue Jun 13 19:01:42 UTC 2006
On Tue, 13 Jun 2006, Danial Thom wrote:
>> Two types of measurements are taken: sampled ticks regarding whether the
>> system as a while is in {user, nice, system, intr, idle}, and then sampling
>> for individual processes. Right now, the system measurements are kept in a
>> simple array of tick counters called cp_time. John Baldwin and others have
>> changes that make these tick counters per-CPU. The lines at the top of
>> top(1)'s output are derived from those tick counters. Ticks are measured
>> on each CPU, so those are a summary across all CPUs. To add cpustat
>> support, we need to merge John's patch to make cp_time per-CPU (ie.,
>> different counters for different CPUs) and teach the userland tools to
>> retrieve them. When you run top you'll notice that it adjusts the
>> measurements each refresh. In effect, what it's doing is sampling the
>> change in tick counts over the window, pulling down the new values and
>> calculating the percentages of ticks in each "bucket" in the last window.
>
> That doesn't explain why the Top line shows 99.6% idle, but the cpu idle
> threads are showing significant usage.
>
> I'm getting a constant 6000 Interrupts / Second on my em controller, yet top
> jumps all over the place; sitting at 99% idle for 10 seconds, then jumping
> to 50%, then somewhere in between. It seems completely unreliable. The load
> I'm applying is constant.
I can't speak to the details of the thread/process use sampling model. Top
uses something called the "weighted cpu percentage" by default; you can switch
to "unweighted" using the -C argument. The top documentation fails to
document the semantics of the percentages, but I suspect -C will give you more
of what you expect. The weighted CPU measurement takes into account process
history, so it takes a while for sudden spike in CPU use to be fully
reflected, and you may see seemingly counter-intuitive results, such as the
appearance of greater than 100% CPU use. Try out -C and see if you see
something that makes more sense?
Robert N M Watson
Computer Laboratory
Universty of Cambridge
More information about the freebsd-performance
mailing list