--------------------
If I am running 'rr' on 2 channels -- specifically for the purpose
of link speed aggregation (getting 1 20Gb channel out of 2 10Gb channels)
I'm not sure I see how miimon would provide benefit. -- if 1 link dies,
the other, being on the same card is likely to be dead too, so would
it really serve a purpose?
Perhaps, but if the link partner experiences a failure, that may
be a different situation. Not all failures will necessarily cause both
links to fail simultaneously.
No; failure of a single slave does not cause the entire bond toRunning without it will not detect failure of----
the bonding slaves, which is likely not what you want. The mode,
balance-rr in your case, is what selects the load balance to use, and is
separate from the miimon.
Wouldn't the entire link die if a slave dies -- like RAID0, 1 disk
dies, the entire link goes down?
fail (unless that is the last available slave). For round robin, a
failed slave is taken out of the set used to transmit traffic, and any
remaining slaves continue to round robin amongst themselves.
The other end (windows) doesn't dynamically config for a static-linkSo it (windows) has no means to disable (and discontinue use of)
aggregation, so I don't think it would provide benefit.
one channel of the aggregation should it fail, even in a static link
aggregation?
----
How are you testing the throughput? If you configure the
aggregation with just one link, how does the throughput compare to the
aggregation with both links?
It most likely is combining links properly, but any link---
aggregation scheme has tradeoffs, and the best load balance algorithm to
use depends upon the work load. Two aggregated 10G links are not
interchangable with a single 20G link.
For a round robin transmission scheme, issues arise because----
packets are delivered at the other end out of order. This in turn
triggers various TCP behaviors to deal with what is perceived to be
transmission errors or lost packets (TCP fast retransmit being the most
notable). This usually results in a single TCP connection being unable
to completely saturate a round-robin aggregated set of links.
There are a few parameters on linux that can be adjusted. I---
don't know what the windows equivalents might be.
On linux, adjusting the net.ipv4.tcp_reordering sysctl value
will increase the tolerance for out of order delivery.
The sysctl is adjusted via something like
sysctl -w net.ipv4.tcp_reordering=10
the default value is 3, and higher values increase the tolerance---
for out of order delivery. If memory serves, the setting is applied to
connections as they are created, so existing connections will not see
changes.
Also, adjusting the packet coalescing setting for the receiving
devices may also permit higher throughput. The packet coalescing setting
is adjusted via ethtool; the current settings can be viewed via
ethtool -c eth0
and then adjusted via something like
ethtool -C eth0 rx-usecs 30
I've seen reports that raising the "rx-usecs" parameter at the---
receiver can increase the round-robin throughput. My recollection is
that the value used was 30, but the best settings will likely be
dependent upon your particular hardware and configuration.