[asterisk-dev] Asterisk scalability (was: Improve scheduler performance under high load)

Johansson Olle E oej at edvina.net
Mon Feb 16 01:35:36 CST 2009


16 feb 2009 kl. 02.38 skrev Russell Bryant:

> It appears that in this test environment, somewhere near N=100 and  
> below, the code in trunk will perform better.  However, at that  
> point, we're talking about very small fractions of a second.  As N  
> gets larger, the code in team/russell/heap clearly starts to perform  
> much better.
>
> With how the scheduler API is used today, a module such as chan_sip  
> or chan_iax2 could easily have a scheduler context with N in the  
> thousands.  Every registration will result in a scheduler entry.   
> Also, every active channel will result in at least one, if not more  
> scheduler entries.
>
> Given these results, I do believe that the changes have proven to be  
> beneficial overall.

I think this together with the changes done by murf in the area of  
hash tables will mean that we done some major work to build a new  
generation of Asterisk that scales better than the old versions on the  
current server architectures! Impressed!

Now, can anyone start a discussion on the way we handle threads? If we  
run on a quad-core or a system with dual quad core CPUs, we have  
capactiy for an enormous quantity of calls, with at least one thread  
per call. Can a modern Linux/Unix thread scheduler handle 10 000  
threads efficently?

Oh, I think I just started that discussion. Looking forward to your  
feedback!
/O



More information about the asterisk-dev mailing list