Giuseppe Lavagetto has submitted this change and it was merged. Change subject: base::grub: allow enabling the memory cgroup controller ......................................................................
base::grub: allow enabling the memory cgroup controller It's disabled by default on debian because of the potential performance hit, but in some cases (most relevant one are the appservers) we might need the functionality. Also: - remove redundant declaration in base::labs and move it here - restrict effectively to debian jessie only because labs trustys (as opposed to prod) are failing. Change-Id: I8b7b5b50f2e56a33b2307e0005615521c91193f3 --- M hieradata/labs.yaml M modules/base/manifests/grub.pp M modules/base/manifests/labs.pp 3 files changed, 15 insertions(+), 13 deletions(-) Approvals: Giuseppe Lavagetto: Looks good to me, approved jenkins-bot: Verified diff --git a/hieradata/labs.yaml b/hieradata/labs.yaml index c2bbf31..13a746b 100644 --- a/hieradata/labs.yaml +++ b/hieradata/labs.yaml @@ -12,6 +12,8 @@ mathoid: "%{::site}" aqs: 'eqiad' +# Labs has the memory cgroup controller enabled by default on all jessies +base::grub::enable_memory_cgroup: true # dns labsdnsconfig: diff --git a/modules/base/manifests/grub.pp b/modules/base/manifests/grub.pp index 1bf3787..695f93c 100644 --- a/modules/base/manifests/grub.pp +++ b/modules/base/manifests/grub.pp @@ -1,8 +1,16 @@ -class base::grub($ioscheduler = 'deadline') { +class base::grub($ioscheduler = 'deadline', $enable_memory_cgroup = false) { # The augeas Shellvars_list lens can't handle backticks for # versions < 1.2.0 (practically every distro older than jessie). # We fallback to the legacy grep/sed method in that case. - if versioncmp($::augeasversion, '1.2.0') >= 0 { + if versioncmp($::augeasversion, '1.2.0') >= 0 and os_version('Debian >= jessie') { + $cgroup_line = $enable_memory_cgroup ? { + true => 'set GRUB_CMDLINE_LINUX/value[. = "cgroup_enable=memory"] cgroup_enable=memory', + false => 'rm GRUB_CMDLINE_LINUX/value[. = "cgroup_enable=memory"]' + } + $swapaccount_line = $enable_memory_cgroup ? { + true => 'set GRUB_CMDLINE_LINUX/value[. = "swapaccount=1"] swapaccount=1', + false => 'rm GRUB_CMDLINE_LINUX/value[. = "swapaccount=1"]' + } augeas { 'grub2': incl => '/etc/default/grub', @@ -17,9 +25,12 @@ 'rm GRUB_CMDLINE_LINUX_DEFAULT/value[. = "splash"]', # Sets the ioscheduler to a specific value. Default is deadline "set GRUB_CMDLINE_LINUX/value[. =~ glob(\"elevator=*\")] elevator=${ioscheduler}", + $cgroup_line, + $swapaccount_line, ], notify => Exec['update-grub'], } + } else { # Disable the 'quiet' kernel command line option so console messages # will be printed. diff --git a/modules/base/manifests/labs.pp b/modules/base/manifests/labs.pp index 394a3b8..a074d23 100644 --- a/modules/base/manifests/labs.pp +++ b/modules/base/manifests/labs.pp @@ -21,17 +21,6 @@ mode => '0444', source => 'puppet:///modules/base/labs/nfs-common.default', } - - # enable memory cgroups - augeas { 'grub2': - incl => '/etc/default/grub', - lens => 'Shellvars_list.lns', - changes => [ - 'set GRUB_CMDLINE_LINUX/value[. = "cgroup_enable=memory"] cgroup_enable=memory', - 'set GRUB_CMDLINE_LINUX/value[. = "swapaccount=1"] swapaccount=1', - ], - notify => Exec['update-grub'], - } } file { '/usr/local/sbin/puppetalert.py': -- To view, visit https://gerrit.wikimedia.org/r/291772 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: I8b7b5b50f2e56a33b2307e0005615521c91193f3 Gerrit-PatchSet: 5 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Giuseppe Lavagetto <glavage...@wikimedia.org> Gerrit-Reviewer: Gehel <gleder...@wikimedia.org> Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits