Re: RH 8; intermittend very high load

From: Tommy Reynolds (TommyReynolds_at_yahoo.com)
Date: 04/30/04


Date: Thu, 29 Apr 2004 17:03:40 -0500

On Thu, 29 Apr 2004 21:50:13 +0000, Sander wrote:

> No, run queue does not show many processes

Below I'll use the term "semaphore" to mean any kernel-level shared
access control, including condition variables.

I think what you are seeing is a "wake-up storm", where the are
several processes sleeping on the same semaphore (or whatever) and
_all_ of them being woken up, checking whatever shared resource they
want, and then going back to sleep.

Say you have a semaphore indicating the availability of an item on a
linked list. Suppose you have 10 consumers watching this list. A
naive implementation might wake up all 10 consumers when the producer
adds a single item to the list. All 10 consumers are then scheduled but
only the first gets the item from the list and the other 9 immediately go
back to sleep. If you get a clock tick while the 10 consumers are on the
run queue but not yet given CPU time, you'll see a load average of 10:
how many processes are awaiting the CPU.

The craic is finding what is causing the activity.

Cheers.



Relevant Pages