diff options
author | Mahesh Bandewar <maheshb@google.com> | 2014-04-22 19:30:22 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2014-04-24 13:04:34 -0400 |
commit | e9f0fb88493570200b8dc1cc02d3e676412d25bc (patch) | |
tree | edd781d8c00772c53e0736a95cf26f0ef2e620dc /Documentation/networking | |
parent | f05b42eaa22cd7c6736d31316e6046c5127f8721 (diff) |
bonding: Add tlb_dynamic_lb parameter for tlb mode
The aggresive load balancing causes packet re-ordering as active
flows are moved from a slave to another within the group. Sometime
this aggresive lb is not necessary if the preference is for less
re-ordering. This parameter if used with value "0" disables
this dynamic flow shuffling minimizing packet re-ordering. Of course
the side effect is that it has to live with the static load balancing
that the hashing distribution provides. This impact is less severe if
the correct xmit-hashing-policy is used for the tlb setup.
The default value of the parameter is set to "1" mimicing the earlier
behavior.
Ran the netperf test with 200 stream for 1 min between two hosts with
4x1G trunk (xmit-lb mode with xmit-policy L3+4) before and after these
changes. Following was the command used for those 200 instances -
netperf -t TCP_RR -l 60 -s 5 -H <host> -- -r81920,81920
Transactions per second:
Before change: 1,367.11
After change: 1,470.65
Change-Id: Ie3f75c77282cf602e83a6e833c6eb164e72a0990
Signed-off-by: Mahesh Bandewar <maheshb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'Documentation/networking')
-rw-r--r-- | Documentation/networking/bonding.txt | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/Documentation/networking/bonding.txt b/Documentation/networking/bonding.txt index a97c567f24e8..9c723ecd0025 100644 --- a/Documentation/networking/bonding.txt +++ b/Documentation/networking/bonding.txt | |||
@@ -585,13 +585,19 @@ mode | |||
585 | balance-tlb or 5 | 585 | balance-tlb or 5 |
586 | 586 | ||
587 | Adaptive transmit load balancing: channel bonding that | 587 | Adaptive transmit load balancing: channel bonding that |
588 | does not require any special switch support. The | 588 | does not require any special switch support. |
589 | outgoing traffic is distributed according to the | 589 | |
590 | current load (computed relative to the speed) on each | 590 | In tlb_dynamic_lb=1 mode; the outgoing traffic is |
591 | slave. Incoming traffic is received by the current | 591 | distributed according to the current load (computed |
592 | slave. If the receiving slave fails, another slave | 592 | relative to the speed) on each slave. |
593 | takes over the MAC address of the failed receiving | 593 | |
594 | slave. | 594 | In tlb_dynamic_lb=0 mode; the load balancing based on |
595 | current load is disabled and the load is distributed | ||
596 | only using the hash distribution. | ||
597 | |||
598 | Incoming traffic is received by the current slave. | ||
599 | If the receiving slave fails, another slave takes over | ||
600 | the MAC address of the failed receiving slave. | ||
595 | 601 | ||
596 | Prerequisite: | 602 | Prerequisite: |
597 | 603 | ||
@@ -736,6 +742,28 @@ primary_reselect | |||
736 | 742 | ||
737 | This option was added for bonding version 3.6.0. | 743 | This option was added for bonding version 3.6.0. |
738 | 744 | ||
745 | tlb_dynamic_lb | ||
746 | |||
747 | Specifies if dynamic shuffling of flows is enabled in tlb | ||
748 | mode. The value has no effect on any other modes. | ||
749 | |||
750 | The default behavior of tlb mode is to shuffle active flows across | ||
751 | slaves based on the load in that interval. This gives nice lb | ||
752 | characteristics but can cause packet reordering. If re-ordering is | ||
753 | a concern use this variable to disable flow shuffling and rely on | ||
754 | load balancing provided solely by the hash distribution. | ||
755 | xmit-hash-policy can be used to select the appropriate hashing for | ||
756 | the setup. | ||
757 | |||
758 | The sysfs entry can be used to change the setting per bond device | ||
759 | and the initial value is derived from the module parameter. The | ||
760 | sysfs entry is allowed to be changed only if the bond device is | ||
761 | down. | ||
762 | |||
763 | The default value is "1" that enables flow shuffling while value "0" | ||
764 | disables it. This option was added in bonding driver 3.7.1 | ||
765 | |||
766 | |||
739 | updelay | 767 | updelay |
740 | 768 | ||
741 | Specifies the time, in milliseconds, to wait before enabling a | 769 | Specifies the time, in milliseconds, to wait before enabling a |