[asterisk-users] Capacity of single instance of Asterisk

Kevin P. Fleming kpfleming at digium.com
Tue Mar 13 10:06:34 CDT 2012


On 03/13/2012 09:43 AM, Amit Patkar | Avhan Technologies Pvt Ltd wrote:

> Thank for your views. Where as no one is ready to share real numbers. I am
> looking at benchmarks so that I can plan for resources.
> Since asterisk project is active for so many years, I was expecting some
> published numbers.

You have completely missed the point that other posters have made 
already on this list. Let me try to express it another way. Let's say 
that you were browsing at an engine manufacturer's website, looking at 
V-8 gasoline engines, and you found one that you liked, that you felt 
had a good combination of features for your project. If you then 
contacted the manufacturer and asked them 'how fast can this engine make 
a car travel', what do you think their response would be?

Asterisk is a toolkit; it can be configured an infinite number of ways. 
Any performance measurements that are made and published apply *only* to 
the specific configuration that was measured; it may or may not be 
possible to extrapolate those into other configurations, or higher/lower 
capacities.

There are lots of published numbers of Asterisk being used in various 
ways and for different purposes; whether any of them apply to your 
specific project is debatable, and relying on them for your project 
would carry some level of risk. Whether you are willing to accept that 
risk or not is up to you.

In your specific case, as has been mentioned already, it is extremely 
unlikely that your proposed hardware would have any trouble with 
Asterisk 1.8 handling 2,400 SIP call legs (1,200 bridged calls), with 
the same codec being used on both sides. When you add in transcoding, 
that will change the system significantly, and depending on the codecs 
involved, the hardware may still be able to handle the load. I know from 
experiments I did years ago with an 8-core Xeon machine (2nd generation 
Xeon, so nowhere near as powerful as modern Xeon cores) that the Digium 
G.729 codec (software implementation) could handle over 800 channels 
with Asterisk 1.4; I think it's reasonable to expect that given the 
hardware you've proposed, transcoding 1,200 channels between G.711 ulaw 
and G.729A is likely to be achievable.

Recording, though, is an entirely different matter. Again, since you 
haven't provided specifics, let's assume you are going to record the 
call legs 'as is' (in their native formats, unmixed). If you had 2,400 
G.711 ulaw call legs to record, some simple math says that you'd need be 
able to push 150 megabytes per second of data onto your filesystem, on 
top of all the 'normal' work that Asterisk is doing. That's rather a 
lot, and will require that your filesystem and disk subsystem be 
extremely fast and well tuned.

If the call legs were all G.729A, then the amount of data to write would 
drop to 18.75 megabytes per second, which is achievable even with 
inexpensive SATA disks.

If you want the calls recorded in 'mixed' form (most likely in 16-bit 
signed linear PCM audio, since that's the easiest format to use outside 
of Asterisk), you'd double the amount of data going into the filesystem 
(now 300 megabytes per second) *and* you'd add in the CPU consumption of 
having to decode the incoming media streams and mix them. For G.711 ulaw 
this is pretty cheap and would likely not be an issue; for G.729A it's 
somewhat more expensive, but still might not be a problem given the 
amount of CPU capacity you have proposed.

Now do you understand why 'benchmarks' don't provide much value for 
something like Asterisk?

-- 
Kevin P. Fleming
Digium, Inc. | Director of Software Technologies
Jabber: kfleming at digium.com | SIP: kpfleming at digium.com | Skype: kpfleming
445 Jan Davis Drive NW - Huntsville, AL 35806 - USA
Check us out at www.digium.com & www.asterisk.org



More information about the asterisk-users mailing list