[asterisk-users] 400 calls at g711 how much cpu power

Gordon Henderson gordon+asterisk at drogon.net
Thu Apr 2 03:33:49 CDT 2009


On Wed, 1 Apr 2009, Erick Perez wrote:

> We are planning to run an outbound only campaign. A 20-second voice message
> will be played to callers and our dialer on machine1 will send to
> machine2-asterisk (1.4) instructions to dial 400 calls, play the message and
> hang up. This will be done for about 1 million phones.
>
> The asterisk box will communicate via SIP to a voice carrier. the voice
> carrier will then place the calls on pstn. The codec will be g711. So we
> will never do any transcoding.
>
> I have been calculating the CPU power required to do the calls and in
> previous posting the usual calculation is about 40MHZ per leg when no
> transcoding is involved.
> So if we use the 40MHZ rule, we are talking about 40*400=16000MHZ or 1.6Ghz.
>
> Comments?

I don't personally think CPU GHz is a good measure for something like 
this, there are many other factors at work when things get "big"... One 
thing I'd be concerend about is the number of packets per second and how 
the underlying hardware is going to cope with shoving them out - and 
remember VoIP is bi-directional, so even if you're just sending data out, 
there will still be data coming in at the same rate... So 50 packets (of 
160 bytes + IP overhead) per second, each way times 400 is 40,000 packets 
per second that the system has to get to and from the Ethernet card.

You might want to check the specification of your router too to make sure 
it can handle that load...

Oh, and bandwidth - you're looking at 80Kb/sec for each call - that's 
going to need 32,000Kb/sec or 32Mb/sec - and remember that's each way..

As for the server - get *everything* in RAM. At least with no disk IO, 
it's one less thing going over the PCI bus when it's running - even then, 
you may want to look for a server motherboard with multiple PCI buses, 
although working that out beforehand is sometimes problematic unless you 
have the time to go through the motherboard manuals in detail, or know 
beforehand what motherboard does what... And you may find that a 
uni-processor server is better than multi-core too to minimise locks at 
the kernel level with multiple cores accessing the same Ethernet 
hardware...

And you can always use 2, 3 or 4, etc. outbound call servers - with the 
one dialler round-robbining the calls to each server. That might be a 
better idea anyway than one big beast of a server.

Good luck!

(And let us know how you get on!)

Gordon



More information about the asterisk-users mailing list