[asterisk-users] Scaling Asterisk: Dual-Core CPUs not yielding gains at high call volumes

Matthew J. Roth mroth at imminc.com
Fri Jun 1 09:06:35 MST 2007


John Hughes wrote:
> OpenSSI can't (at the moment) migrate threads between compute nodes.  It
> can migrate separate processes, but doesn't Asterisk use threads?
John,

Asterisk uses 1 thread per call, plus about 10 to 15 background threads 
that persist throughout the life of the process.

I'm curious if the 1 thread per call model is efficient as the number of 
calls increases.  It's possible that in the 100+ call range that there 
is a significant overhead to managing all of those threads without much 
gain since most servers have 1 to 8 processors to actually schedule them 
on.  Acquiring locks on shared resources between the threads could be 
pretty nasty at that point, too.

I wonder if pooling the calls in X threads, where X is a value that is 
determined at compile time by looking at the number of processors 
available, would be more efficient?  This is probably just an academic 
question, because I'd imagine it would require an overhaul of the 
codebase to accomplish.

Matthew Roth
InterMedia Marketing Solutions
Software Engineer and Systems Developer



More information about the asterisk-users mailing list