[asterisk-dev] RE: 5,000 concurrent calls system rollout question
jtodd at loligo.com
Wed Feb 1 22:32:33 MST 2006
>Signate sells a single server that can get you to the call volumes you need.
><mailto:pmahler at signate.com>pmahler at signate.com
Past conversations on this topic have generated quite a bit of
controversy within the Asterisk development community, both publicly
here on the list forums as well as in quite a few more quiet
discussions with people who often do not post but have extensive
operational experiences with Asterisk (most of whom monitor the -dev
list and whose replies will be suited to that audience.)
The subject of load on a single chassis is still the most contentious
issue to date. The Signate numbers of >5000 calls per chassis with
RTP are impressive, and there are others who claim more vaguely of
1000, 2000, or more calls into a single P4 server (with or without
media.) Others say that there are inherent limits in the Asterisk
code which prevent more than ~500 calls from being processed with RTP
at any one time. Opterons, FreeBSD, custom Linux loads, Solaris, and
other operating systems or hardware have been offered as the magic
bullets to increase call volumes. Who knows? (1) I will say that
extraordinary claims demand extraordinary evidence, which has been
pretty thin. I believe that most large call processing facilities
still run on distributed systems of some type, as was described in
the primary thread of this discussion on -users. (2)
I know that there are some projects towards testing Asterisk more
rigorously to determine these numbers. However, I would suggest that
the community at large could benefit from a more open examination of
high-end system claims immediately than these (better) long-term
tests which are progressing slowly (if at all.) Let's just look at
the "maximum" numbers. Running a big system? Selling a big system?
Tell us about it, in detail. What are the limits that have been hit?
Be specific. I keep seeing hand-waving, but no programmers have come
forward to say "It won't work because of the way X is implemented in
the file blah.c or libFOO."
To make a bad analogy: I don't want to see the street rods; I just
want to see the top-fuel, rocket-powered dragsters on the line. Any
takers? It sounds like Signate has a contender, but quite a few
people have said that it's impossible without serious modifications
to the code. Others have claimed (publicly or privately) that they
can match those numbers on different hardware.
Here are the criteria:
- Any O/S
- An unmodified version of Asterisk from SVN (or CVS)
OR patches must be available for inspection, as per the GPL
OR you must be a Digium license-holder (patches can be secret)
- All calls are IAX2 or SIP (both in and out)
- No transcoding of any type is required
- All calls are G.711, 20ms OR 30ms packet size
- All O/S documentation, kernel tricks, modules, hacks, patches, or
configuration elements should be documented, but proprietary
information need not be divulged if that is deemed "secret"
- Testing method must be reasonably documented
- Dialplans must be included
- SIP.conf files must be included
- All hardware must be fully described (part numbers required)
All media must be handled by the server. This is for both legs of
the call. The "canreinvite=no" for SIP and "notransfer=yes" in IAX2
must be set for all calls.
Media may or may not be handled by the server. Native transfers
should be allowed in both IAX2 and/or SIP.
(1) I have heard various people saying that it is "impossible" for
Asterisk to handle a large number of calls due to architectural
issues (no, it's not just from the people that you'd "expect" to hear
this from.) I've not been able to validate this one way or the other
recently. I am interested to hear what the developer community has
as a comment on this topic. I have an Empirix Hammer system at my
company, but honestly I just don't have the time to set it up to do
testing due to day job time constraints...
(2) There are so many ways to spread calls across an Asterisk array
it makes my head spin, but the question STILL comes down to "how many
calls can a single chassis handle?" Even in a farm of servers, there
has to be a numerator in that ratio.
More information about the asterisk-dev