Bonding mode=2 and changing loads from one client

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Question about how Linux bonding mode=2 handles  changing loads from a single 
client doing video editing over a network.  

Here's the specific scenario. I have 4 Gigabit Ethernet lines running  from a 
Linux server to a switch that supports static link aggregation. I have  
configured the Linux adapters with: 

modprobe  bonding mode=2
ifenslave bond0 eth0 eth1 eth2  eth3

If I connect 4 Windows clients to the switch, I can see that as each  client 
"comes on line" and starts requesting data, the data is being transmitted  
from a different port out of the 4 ports that are part of the "static  
aggregation" or trunk. 

So, the load is getting balanced between the four  Gigabit channels. So far 
so good. And I see great performance on the editing  workstations. 

However, my question is, what happens if the load changes?  For instance, say 
today I am editing "compressed DV video" (3.8 MB/sec) on eight  clients. If 
the balancing is fair, I might end up with two clients sending and  receiving 
data on each Gigabit port that's part of the aggregation or trunk.  

But tomorrow let's say I start editing  "uncompressed standard  definition 
video" (roughly 22 MB/sec) on two clients. And let's say it just so  happens 
that yesterday those two clients were both "assigned" the same port for  
communicating with the server. Communicating through the same port would have  been 
fine for compressed DV video, but might not be so good for two streams of  22 
MB/sec uncompressed video. Will the switch and/or the Linux bonding mode=2  
algorithm reassign which port is associated with which client based on the  
changing load? Or am I stuck with the original port assignment until I reboot  the 
client or the switch? 

And what happens if I'm editing DV video (3.8  MB/sec) at 9 am, but change to 
uncompressed video (22 MB/sec) at 10 am? The  balance between clients that 
worked at 9 am might be terrible at 10 am.  

I haven't actually seen this problem in the real world, but I'm  wondering 
how the "static link aggregation" and "balanced XOR" standard handles  this. 

In contrast, I can see that when I set the bonding module to  "mode=0", the 
data is ALWAYS parceled out between the four ports. But I get  terrible 
performance on the client workstations when editing uncompressed video.  There must 
be a lot of "out of order packets" with "mode=0" that trip up the  workstation 
running the video editing program. So, "mode=2" seems like a better  bet. But 
I would like to understand how it works over time. 

Insight  would be appreciated. 

Andy Liebman  

-
: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Netdev]     [Ethernet Bridging]     [Linux 802.1Q VLAN]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Git]     [Bugtraq]     [Yosemite News and Information]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux PCI]     [Linux Admin]     [Samba]

  Powered by Linux