Date: Fri, 30 Jan 2004 13:14:46 -0500 From: John Baldwin <jhb@FreeBSD.org> To: Bruce Evans <bde@zeta.org.au>, Kris Kennaway <kris@obsecurity.org> Cc: current@freebsd.org Subject: Re: unusually high load averages Message-ID: <200401301314.46146.jhb@FreeBSD.org> In-Reply-To: <20040131030718.I602@gamplex.bde.org> References: <200401292134.i0TLYSfD019841@Espresso.NEEBU.Net> <20040129231521.GA68516@xor.obsecurity.org> <20040131030718.I602@gamplex.bde.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Friday 30 January 2004 12:03 pm, Bruce Evans wrote: > On Thu, 29 Jan 2004, Kris Kennaway wrote: > > On Fri, Jan 30, 2004 at 12:08:17AM +0100, Melvyn Sopacua wrote: > > > On Thursday 29 January 2004 22:34, Jake Khuon wrote: > > > > I'm noticing some unusually high load averages even though nothing > > > > seems to be taking up much CPU. This started happening with a recent > > > > cvsup (last night). Anyone know what might be causing this? > > > > > > You are actually seeing > 0.00% CPU/WCPU, cause with me everything is > > > zero, allthough I know for sure that's not true. > > > > You both forgot to mention which scheduler you're using. This is > > important. > > It's easy enough to list the bugs for each scheduler and to determine the > scheduler (and the approximate kernel source version) by observing the > bugs: > > 0.00% CPU/WCPU: > This indicates a 4BSD scheduler with the bug that I fixed recently. The > bug lived for almost a month. > > CPU always the same as WCPU: > This indicates a ULE scheduler and certain bugs. ULE doesn't maintain > all the statistics related to the old scheduler or provide alternatives > (it just fakes some), and statistics programs blindly display all the > old statistics. > > High load average despite only idle processes running: > This seems to be scheduler-independent. Running top to watch the load > average raises the load average by about 0.1. I think the problem is > that loadav() is now a kthread that restarted by a timeout, so it now > sees a herd of other processes that are restarted by the same timeout. > Previously it was run as a timeout and other threads were put on the > run queue by a timeout; the ordering of the timeouts was hopefully > random so that loadav() saw the correct number of processes restarted > by timeouts, on average. Now loadav() sees all lower priority processes > that are restarted by the same timeout (since they are all restarted but > loadav() runs first). If loadav is truly unimportant, we could give it a fairly low priority so other processes ran first. -- John Baldwin <jhb@FreeBSD.org> <>< http://www.FreeBSD.org/~jhb/ "Power Users Use the Power to Serve" = http://www.FreeBSD.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200401301314.46146.jhb>