Filippo Giunchedi has submitted this change and it was merged. Change subject: graphite: limit uwsgi workers memory ......................................................................
graphite: limit uwsgi workers memory querying graphite-web for many metrics/datapoints can make it consume large amounts of memory, in turn trashing the machine's caches. Limit memory in a cgroup for all uwsgi workers to limit the impact. Change-Id: Id0823c35c06b778f743d8354b836a27dff3655d7 --- M modules/graphite/manifests/web.pp 1 file changed, 7 insertions(+), 1 deletion(-) Approvals: Filippo Giunchedi: Verified; Looks good to me, approved Giuseppe Lavagetto: Looks good to me, but someone else must approve diff --git a/modules/graphite/manifests/web.pp b/modules/graphite/manifests/web.pp index 4c61335..f112f65 100644 --- a/modules/graphite/manifests/web.pp +++ b/modules/graphite/manifests/web.pp @@ -8,6 +8,9 @@ # [*uwsgi_processes*] # Number of uWSGI workers to run (default: 8). # +# [*max_memory*] +# Maximum memory allowed for uWSGI workers *combined* (default: 8G). +# # [*memcached_size*] # Size of memcached store, in megabytes (default: 200). # @@ -38,6 +41,7 @@ $secret_key, $storage_dir, $uwsgi_processes = 8, + $max_memory = to_bytes("8G"), $memcached_size = 200, $admin_user = 'admin', $documentation_url = 'http://graphite.readthedocs.org/', @@ -45,7 +49,7 @@ ) { include ::graphite - package { ['memcached', 'python-memcache', 'graphite-web']: } + package { ['memcached', 'python-memcache', 'graphite-web', 'cgroup-bin']: } file { '/etc/graphite/cors.py': source => 'puppet:///modules/graphite/cors.py', @@ -104,6 +108,8 @@ 'die-on-term' => true, 'master' => true, 'processes' => $uwsgi_processes, + 'cgroup' => '/sys/fs/cgroup/memory/graphite-web', + 'cgroup-opt' => "memory.limit_in_bytes=$max_memory", }, }, require => File['/var/log/graphite-web'], -- To view, visit https://gerrit.wikimedia.org/r/183256 To unsubscribe, visit https://gerrit.wikimedia.org/r/settings Gerrit-MessageType: merged Gerrit-Change-Id: Id0823c35c06b778f743d8354b836a27dff3655d7 Gerrit-PatchSet: 2 Gerrit-Project: operations/puppet Gerrit-Branch: production Gerrit-Owner: Filippo Giunchedi <fgiunch...@wikimedia.org> Gerrit-Reviewer: Faidon Liambotis <fai...@wikimedia.org> Gerrit-Reviewer: Filippo Giunchedi <fgiunch...@wikimedia.org> Gerrit-Reviewer: Giuseppe Lavagetto <glavage...@wikimedia.org> Gerrit-Reviewer: Ori.livneh <o...@wikimedia.org> Gerrit-Reviewer: jenkins-bot <> _______________________________________________ MediaWiki-commits mailing list MediaWiki-commits@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits