From 55bd31721dd945e1878db71b997df917da7b95c7 Mon Sep 17 00:00:00 2001 From: Alex Vandiver Date: Fri, 12 Jun 2020 13:38:20 -0700 Subject: [PATCH] puppet: Remove custom `vm.dirty_ratio` and `vm.dirty_background_ratio`. These values differed between the primary and secondary database hosts, for unclear reasons. The differences date back to their introduction in 387f63deaa. As the comment in the replica confguration notes, settings of `vm.dirty_ratio = 10` and `vm.dirty_background_ratio = 5` matched the kernel defaults for "newer" kernels; however, kernel 2.6.30 bumped those to 20 and 10, respectively[1], as a fix for underlying logic now being more correct. Remove these overrides; they should at very least be consistent across roles, and the previous values look to be an attempt to tune for a very much older version of the Linux kernel, which was using an different, buggier, algorithm under the hood. [1] https://github.com/torvalds/linux/commit/1b5e62b42b55c509eea04c3c0f25e42c8b35b564 --- puppet/zulip_ops/files/postgresql/40-postgresql.conf | 3 +++ .../zulip_ops/files/postgresql/40-postgresql.conf.master | 9 --------- .../zulip_ops/files/postgresql/40-postgresql.conf.slave | 7 ------- puppet/zulip_ops/manifests/postgres_common.pp | 7 +++++++ puppet/zulip_ops/manifests/postgres_master.pp | 8 -------- puppet/zulip_ops/manifests/postgres_slave.pp | 8 -------- 6 files changed, 10 insertions(+), 32 deletions(-) create mode 100644 puppet/zulip_ops/files/postgresql/40-postgresql.conf delete mode 100644 puppet/zulip_ops/files/postgresql/40-postgresql.conf.master delete mode 100644 puppet/zulip_ops/files/postgresql/40-postgresql.conf.slave diff --git a/puppet/zulip_ops/files/postgresql/40-postgresql.conf b/puppet/zulip_ops/files/postgresql/40-postgresql.conf new file mode 100644 index 0000000000..fb718c4a4b --- /dev/null +++ b/puppet/zulip_ops/files/postgresql/40-postgresql.conf @@ -0,0 +1,3 @@ +# Virtual memory settings +vm.swappiness = 0 +vm.overcommit_memory = 2 diff --git a/puppet/zulip_ops/files/postgresql/40-postgresql.conf.master b/puppet/zulip_ops/files/postgresql/40-postgresql.conf.master deleted file mode 100644 index 5dda67ceda..0000000000 --- a/puppet/zulip_ops/files/postgresql/40-postgresql.conf.master +++ /dev/null @@ -1,9 +0,0 @@ -# Virtual memory settings -vm.swappiness = 0 -vm.overcommit_memory = 2 - -# We don't want these numbers to be too large or else performance -# will be too spiky. These seem to give a good balance between low -# numbers and sequential write performance -vm.dirty_ratio = 5 -vm.dirty_background_ratio = 2 diff --git a/puppet/zulip_ops/files/postgresql/40-postgresql.conf.slave b/puppet/zulip_ops/files/postgresql/40-postgresql.conf.slave deleted file mode 100644 index 4ea5ff7f42..0000000000 --- a/puppet/zulip_ops/files/postgresql/40-postgresql.conf.slave +++ /dev/null @@ -1,7 +0,0 @@ -# Virtual memory settings -vm.swappiness = 0 -vm.overcommit_memory = 2 - -# These are the defaults on newer kernels -vm.dirty_ratio = 10 -vm.dirty_background_ratio = 5 diff --git a/puppet/zulip_ops/manifests/postgres_common.pp b/puppet/zulip_ops/manifests/postgres_common.pp index 37d3e559e2..c35177e0ac 100644 --- a/puppet/zulip_ops/manifests/postgres_common.pp +++ b/puppet/zulip_ops/manifests/postgres_common.pp @@ -33,6 +33,13 @@ class zulip_ops::postgres_common { ] } + file { '/etc/sysctl.d/40-postgresql.conf': + ensure => file, + owner => 'root', + group => 'root', + mode => '0644', + source => 'puppet:///modules/zulip_ops/postgresql/40-postgresql.conf', + } exec { 'sysctl_p': command => '/sbin/sysctl -p /etc/sysctl.d/40-postgresql.conf', subscribe => File['/etc/sysctl.d/40-postgresql.conf'], diff --git a/puppet/zulip_ops/manifests/postgres_master.pp b/puppet/zulip_ops/manifests/postgres_master.pp index 16eb29bdfa..165b0ed2af 100644 --- a/puppet/zulip_ops/manifests/postgres_master.pp +++ b/puppet/zulip_ops/manifests/postgres_master.pp @@ -1,12 +1,4 @@ class zulip_ops::postgres_master { include zulip_ops::base include zulip_ops::postgres_appdb - - file { '/etc/sysctl.d/40-postgresql.conf': - ensure => file, - owner => 'root', - group => 'root', - mode => '0644', - source => 'puppet:///modules/zulip_ops/postgresql/40-postgresql.conf.master', - } } diff --git a/puppet/zulip_ops/manifests/postgres_slave.pp b/puppet/zulip_ops/manifests/postgres_slave.pp index 32da994415..cf4f91366c 100644 --- a/puppet/zulip_ops/manifests/postgres_slave.pp +++ b/puppet/zulip_ops/manifests/postgres_slave.pp @@ -1,12 +1,4 @@ class zulip_ops::postgres_slave { include zulip_ops::base include zulip_ops::postgres_appdb - - file { '/etc/sysctl.d/40-postgresql.conf': - ensure => file, - owner => 'root', - group => 'root', - mode => '0644', - source => 'puppet:///modules/zulip_ops/postgresql/40-postgresql.conf.slave', - } }