[asterisk-users] Is there real benefits on a SMP machine for Asterisk?

Philipp Kempgen philipp.kempgen at amooma.de
Sat Oct 13 08:31:09 CDT 2007


Tzafrir Cohen wrote:

> The loadavg is the average number of threads[0] ready to run (or running).

To me it seems that there are important differences between
systems, especially Linux/Unix, as of which of the states in
following are counted in:
- running (i.e. using the CPU)
- runnable (i.e. waiting for their turn)
- uninterruptible sleep (i.e. waiting for disk/network I/O)

Without knowing how your kernel calculates the loadavg the
usefulness of this value is very limited.

> We are all well
> familiar with a single CPU and single core systems. In those systems
> only one thread can execute at each time. If the load average is greater
> than 1 it means that there on the average[1] at least one process
> waiting for the CPU and not getting executed immediately.

So what you're implying is that only runnable (i.e. waiting)
threads are counted, not running threads.
The question is if there are any differences on a multi-CPU
system. Waiting threads would still be waiting threads, no
matter how many CPUs /could/ run the thread /if they were idle/.
Is that correct?

The mistake people often seem to make is to assume that
loadavg == cpu usage.

> So what we really want to know is if a certain thread of Asterisk was
> waiting in the run queue too long. Asterisk should not need to wait when
> presented with a voice frame to move around. Is there any more direct
> way of checking that?

Not that I know of. But from your posts on this list I got
the impression that your knowledge of what happens inside
the kernel is a bit deeper anyway.

Regards,
  Philipp Kempgen

-- 
amooma GmbH - Bachstr. 126 - 56566 Neuwied - http://www.amooma.de
    Let's use IT to solve problems and not to create new ones.
          Asterisk? -> http://www.das-asterisk-buch.de

Geschäftsführer: Stefan Wintermeyer
Handelsregister: Neuwied B 14998



More information about the asterisk-users mailing list