[asterisk-dev] Asterisk scalability

Michiel van Baak michiel at vanbaak.info
Sat Feb 21 04:17:41 CST 2009


On 15:48, Fri 20 Feb 09, John Todd wrote:
> 
> On Feb 20, 2009, at 12:00 PM, Kevin P. Fleming wrote:
> 
> > John Todd wrote:
> >
> >> Hypothetical: My big router receives a 10gpbs ethernet from "the
> >> Internet".  Then, that router has three 1gbps interfaces that feed
> >> into my Asterisk box (which has three NICs.)  Thus, all of the  
> >> traffic
> >> appears to come from the MAC address on the distant side of the  
> >> 10gbps
> >> link.  I could generate the traffic from a zillion different
> >> endpoints, so hopefully UDP port hashing would work.  Would this work
> >> appropriately for spreading load on 802.3ad?
> >
> > If your 'big router' has three NICs connected to you, it will have  
> > three
> > MAC addresses for those NICs, and that's what you will see on your
> > incoming packets, not the MAC address of the router on the other side.
> >
> > If your 'big router' is actually a switch (which I think is what you
> > really meant), then your logic is correct.
> 
> 
> I had assumed we were talking about seeing MAC addresses from the  
> perspective of the device doing the load sharing on packets that were  
> inbound from the Internet towards the Asterisk server.  That is the  
> device that would have to "share" those packets across the three NICs  
> of the Asterisk server, and therefore would have to come up with some  
> algorithm to distribute evenly (or at least predictably) the traffic  
> to the three interfaces.  Return traffic from the Asterisk server to  
> the router/switch is the problem of the Asterisk box, but it looks  
> like there are lots of knobs to turn on on the open-source side of the  
> world with 802.3ad implementations that make that possible.
> 
> However, I'm speaking out of turn.  If others here think that 802.3ad  
> works well and can "share" load across multiple NICs that are on a  
> single host (versus just doing failover) then I'll believe them, but I  
> haven't heard a "Yes absolutely it can be done" reply.  I strongly  
> suspect that it does in fact work, but I've just never set it up to  
> learn about the devil in the details.  It seems like 802.3ad would be  
> a good way to share load across multiple NICs to reduce IRQ contention  
> on the PCI backplane with high packet counts, and it also seems pretty  
> universally supported by most mid-to-high end router/switch gear as  
> well as Linux/BSD kernels.  It has the added benefit of reducing some  
> single wiring points of failure, but introduces complexity.

'bonding' as it's called in linux does work. I did not test if we can
handle the double ammount of calls, because the setups I did only handle
like 100 to 150 concurrent calls. But I can see on the interface level
the both nics in the bonding device have roughly handled the same
ammount of rx and tx packets.
The two interfaces are connected to a cisco 3500 switch, and I did not
configure the switch so I have no idea what knobs you have to turn
there.

> 
> Who has tried it?  Speak up!  Your experiences make you the one-eyed  
> man in this land of the blind.

-- 

Michiel van Baak
michiel at vanbaak.eu
http://michiel.vanbaak.eu
GnuPG key: http://pgp.mit.edu:11371/pks/lookup?op=get&search=0x71C946BD

"Why is it drug addicts and computer aficionados are both called users?"




More information about the asterisk-dev mailing list