Ema has submitted this change and it was merged. ( 
https://gerrit.wikimedia.org/r/351707 )

Change subject: BBR Congestion Control
......................................................................


BBR Congestion Control

Introduce a boolean hiera flag called 'bbr_congestion_control',
defaulting to false, to enable BBR for TCP Congestion Control.

When using BBR, the packet scheduler needs to be set to 'fq' as the
FQ/pacing queuing discipline is the main mechanism used by BBR on Linux
to send out data at the proper rate, instead of relying only on the TCP
congestion window.

Bug: T147569
Ref: https://lwn.net/Articles/701165/
Change-Id: Idf8416bb1e70dfca1fef5ac8286cc701b68455ac
---
M hieradata/hosts/cp1008.yaml
M modules/base/manifests/sysctl.pp
2 files changed, 24 insertions(+), 0 deletions(-)

Approvals:
  Muehlenhoff: Looks good to me, but someone else must approve
  Ema: Verified; Looks good to me, approved
  BBlack: Looks good to me, but someone else must approve



diff --git a/hieradata/hosts/cp1008.yaml b/hieradata/hosts/cp1008.yaml
index 4b128a5..77e4678 100644
--- a/hieradata/hosts/cp1008.yaml
+++ b/hieradata/hosts/cp1008.yaml
@@ -1,6 +1,7 @@
 debdeploy::grains:
   debdeploy-cp:
     value: canary
+bbr_congestion_control: true
 varnish::dynamic_backend_caches: false
 cache::text::nodes:
     eqiad:
diff --git a/modules/base/manifests/sysctl.pp b/modules/base/manifests/sysctl.pp
index aecde53..5cb135f 100644
--- a/modules/base/manifests/sysctl.pp
+++ b/modules/base/manifests/sysctl.pp
@@ -106,4 +106,27 @@
             },
         }
     }
+
+    # BBR congestion control (T147569)
+    # https://lwn.net/Articles/701165/
+    #
+    # The BBR TCP congestion control algorithm is based on Bottleneck
+    # Bandwidth, i.e. the estimated bandwidth of the slowest link, and
+    # Round-Trip Time to control outgoing traffic. Other algorithms such as
+    # CUBIC (default on Linux since 2.6.19) and Reno are instead based on
+    # packet loss.
+    #
+    # To send out data at the proper rate, BBR uses the tc-fq packet scheduler
+    # instead of the TCP congestion window.
+    #
+    # It has been added to Linux in version 4.9.
+    $use_bbr = hiera('bbr_congestion_control', false)
+    if ($use_bbr) and (versioncmp($::kernelversion, '4.9') >= 0) {
+        sysctl::parameters { 'tcp_bbr':
+            values => {
+                'net.core.default_qdisc'          => 'fq',
+                'net.ipv4.tcp_congestion_control' => 'bbr',
+            },
+        }
+    }
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/351707
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: Idf8416bb1e70dfca1fef5ac8286cc701b68455ac
Gerrit-PatchSet: 5
Gerrit-Project: operations/puppet
Gerrit-Branch: production
Gerrit-Owner: Ema <[email protected]>
Gerrit-Reviewer: BBlack <[email protected]>
Gerrit-Reviewer: Ema <[email protected]>
Gerrit-Reviewer: Faidon Liambotis <[email protected]>
Gerrit-Reviewer: Muehlenhoff <[email protected]>
Gerrit-Reviewer: jenkins-bot <>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to