On Sun, 24 Feb 2008, Ivan Voras wrote: > Kris Kennaway wrote: >> Hugo Silva wrote: >>> Kris Kennaway wrote: >>>> Barney Cordoba wrote: >>>>> I have a dual core system running 7.0 and I can't get >>>>> top to show more than 100% usage no matter how I >>>>> hammer it. My MAC shows over 100% often, but its not >>>>> clear if top is averaging the 2 cpus or just not going >>>>> over 100, or just showing 1 of the cpus. >>>> >>>> 100% in FreeBSD means "all of your CPUs are completely active". It is >>>> hard to exceed this amount :-) >>> >>> You should see my production mysql going over 458% on service startup, on >>> a quad core server :-) >> >> That is a multithreaded process using multiple CPUs, not the total CPU >> statistics (first line of top(1)). > > So how does a multithreaded process get 458% CPU on a quad-core machine? :) > (Really, I want to know; I thought thread CPU accounting was fixed in 7.x. > Unless I'm mistaken, 4 CPU-intensive threads in a single process should > account as 4 CPU-intensive single-thread processes; i.e. each could only take > up to 100% of a core/CPU, accounting for NCPU*100% total). > > It is possible for the sum of all threads in the system to exceed 100% cpu. This is because the decay function is not precise. 15% over is a bit more than I would expect but I suppose it's possible. We also inhert pcpu information from the parent on fork/thread creation so the child isn't created with a priority as if it had been idle. So for a moment the utilization is duplicated. Penalizing the child for an expensive parent is an important optimization that prevents batch jobs from overwhelming the system under load. Thanks, JeffReceived on Sun Feb 24 2008 - 21:46:11 UTC
This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:39:28 UTC