Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 23 Sep 2011 04:34:59 -0500 (CDT)
From:      Robert Bonomi <bonomi@mail.r-bonomi.com>
To:        freebsd-questions@freebsd.org
Subject:   Re: load average with multi-core CPU's
Message-ID:  <201109230934.p8N9YxRx088414@mail.r-bonomi.com>
In-Reply-To: <4E7C3F83.2050805@my.gd>

next in thread | previous in thread | raw e-mail | index | archive | help
> From owner-freebsd-questions@freebsd.org  Fri Sep 23 03:15:37 2011
> Date: Fri, 23 Sep 2011 10:12:51 +0200
> From: Damien Fleuriot <ml@my.gd.r-bonomi.com>
> To: freebsd-questions@freebsd.org
> Subject: Re: load average with multi-core CPU's
>
> On 9/22/11 10:59 PM, Rodrigo Gonzalez wrote:
> > On 09/22/2011 04:29 PM, Mark Felder wrote:
> >> On Thu, 22 Sep 2011 10:22:43 -0500, Henry M <henry95@gmail.com> wrote:
> >>
> >>> Hi all,
> >>>
> >>> Can someone explain, or point me to correct documentation on what the
> >>> load
> >>> average on top/uptime is actually displaying?
> >>
> >> Load average is "average number of processes in the run queue" for the
> >> 1, 5, and 15 minute intervals. If you have a quad core CPU a 4.00 load
> >> average means you've been keeping the CPU busy at 100%.
> > Not exactly as I understand it....IO (disk, network or whatever) affects
> > it too...
> > It is the number of task waiting in queue to be run....but IO is
> > important...if 2 processes are waiting for IO and it is completely
> > saturated they will be kept in queue so load will get higher
> > I think there are other things that affect load average but are over my
> > current knowledge...
> > 
> > Regards
> > 
> > Rodrigo Gonzalez
>
> Actually, I could be wrong but that is the number of tasks both in the
> waiting *AND* the running queue.

It is the average of the number of 'runnable' processes -- those that are 
actually running (which is -- obviously! -- limited to the number of logical
cpu's present) and those that are -- in _all_ other respects -- 'ready' to 
be run.  This list of processes -- 'running' and 'runnable -- is known as 
the 'run queue'.  The cpu 'scheduler' allocated cpu time slots between the
processes in the 'run queueu', _only_.  Anything -not- in the 'run queue'
is not eligible for a slice of cpu time -- because it "can't" use cpu time,
if it were to be offered, because it is 'waiting' on something else.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201109230934.p8N9YxRx088414>