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
_______________________________________________
freebsd-performance@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-performance
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to