Date: Tue, 26 Feb 2008 10:25:28 -0800 (PST) From: Barney Cordoba <barney_cordoba@yahoo.com> To: current@freebsd.org Subject: Re: Re[2]: cpu usage in 7.0 Message-ID: <119186.84635.qm@web63911.mail.re1.yahoo.com> In-Reply-To: <20080224223903.Q920@desktop>
next in thread | previous in thread | raw e-mail | index | archive | help
--- Jeff Roberson <jroberson@chesapeake.net> wrote: > On Mon, 25 Feb 2008, Daniel Gerzo wrote: > > > Hello Jeff, > > > > Sunday, February 24, 2008, 11:47:39 PM, you wrote: > > > >>> 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. > > > > I have a box running mysqld, which sometimes > exeeds 130%, what about > > this? ;) > > > > Also the mysqld is alsmost all the time in the > "ucond" state, what > > does it mean? I've been told that it is probably > waiting for I/O, but > > then, I have another box which is currently > completely idle, but > > running mysql shows that it is "ucond" as well. > > You should switch top to display threads. 'H' is > the key to do it. > Otherwise you only get the wait channel for one of > the threads. Others > may be busy doing things. > > 'ucond' means the thread is waiting on a userland > condition variable. > This is a type of synchronization point in userland > accessed via the > pthread_cond_*(3) api. It may indicate a thread > that is waiting for work > but other threads may be busy. > > Do you only have one CPU? If you're seeing 130% on > a single cpu system we > may need to take some steps to improve the > reporting. > > > > > > -- > > Best regards, > > Daniel > mailto:danger@FreeBSD.org I'd like to note that I find it confusing and inconsistent to have Top average the cpu usage as the main usage figure, but use a different formula for the processes themselves. Barney ____________________________________________________________________________________ Looking for last minute shopping deals? Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?119186.84635.qm>