Enable TCP BBR on a bunch of hosts. Not all for now, but maybe we should. (re:...
authorPeter Palfrader <peter@palfrader.org>
Fri, 8 Dec 2017 14:28:16 +0000 (15:28 +0100)
committerPeter Palfrader <peter@palfrader.org>
Fri, 8 Dec 2017 14:28:16 +0000 (15:28 +0100)
manifests/site.pp
modules/tcp_bbr/manifests/init.pp [new file with mode: 0644]

index 12e8e51..fc283db 100644 (file)
@@ -44,6 +44,7 @@ node default {
        include postgres
        include haveged
        include huge_mem
+       include tcp_bbr
 
        if $::lsbdistcodename == squeeze {
                include roles::udldap::client
diff --git a/modules/tcp_bbr/manifests/init.pp b/modules/tcp_bbr/manifests/init.pp
new file mode 100644 (file)
index 0000000..ac7470f
--- /dev/null
@@ -0,0 +1,46 @@
+class tcp_bbr {
+       # this is included by all hosts,
+       # so filtering needs to happen here.
+
+       if
+          has_role('api.ftp-master') or
+          has_role('bacula_storage') or
+          has_role('bugs_master') or
+          has_role('bugs_mirror') or
+          has_role('debian_mirror') or
+          has_role('debug_mirror') or
+          has_role('dgit_git') or
+          has_role('ftp.d.o') or
+          has_role('ftp.upload.d.o') or
+          has_role('ftp_master') or
+          has_role('git_master') or
+          has_role('historical_master') or
+          has_role('historical_mirror') or
+          has_role('ports_master') or
+          has_role('ports_mirror') or
+          has_role('postgres_backup_server') or
+          has_role('postgresql_server') or
+          has_role('security_master') or
+          has_role('security_mirror') or
+          has_role('security_upload') or
+          has_role('ssh.upload.d.o') or
+          has_role('static_master') or
+          has_role('static_mirror') or
+          has_role('static_source') or
+          has_role('syncproxy') or
+          has_role('www_master') or
+          false {
+
+               site::linux_module { 'tcp_bbr': }
+               site::linux_module { 'sch_fq': }
+
+               site::sysctl { 'puppet-net_core_default_qdisc':
+                       key   => 'net.core.default_qdisc',
+                       value => 'fq',
+               }
+               site::sysctl { 'puppet-net_ipv4_tcp_congestion_control':
+                       key   => 'net.ipv4.tcp_congestion_control',
+                       value => 'bbr',
+               }
+       }
+}