Skip site navigation (1)Skip section navigation (2)
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>