Restrict mongodb memory usage

Currently, mongodb has no limits on how much memory
it can consume. This enforces restriction so mongodb
service limits through systemd.

The puppet-systemd module has support for limits. The
MemoryLimit support is added in the follwoing pull
request https://github.com/camptocamp/puppet-systemd/pull/23

Closes-bug: #1656558

Change-Id: Ie9391aa39532507c5de8dd668a70d5b66e17c891
This commit is contained in:
Pradeep Kilambi 2017-01-11 13:56:57 -05:00
parent e292871741
commit 3aa86a4ea3
2 changed files with 17 additions and 0 deletions

View File

@ -30,10 +30,15 @@
# for more details.
# Defaults to hiera('step')
#
# [*memory_limit*]
# (Optional) Limit amount of memory mongodb can use
# Defaults to 20G
#
class tripleo::profile::base::database::mongodb (
$mongodb_replset,
$bootstrap_node = downcase(hiera('bootstrap_nodeid')),
$step = hiera('step'),
$memory_limit = '20G',
) {
if $step >= 2 {
@ -56,5 +61,11 @@ class tripleo::profile::base::database::mongodb (
}
}
# Limit memory utilization
::systemd::service_limits { 'mongod.service':
limits => {
'MemoryLimit' => $memory_limit
}
}
}
}

View File

@ -0,0 +1,6 @@
---
fixes:
- Add a way for mongodb to limit amount of memory it comsumes
with systemd. A new param memory_limit has been added to
tripleo::profile::base::database::mongodb class with
default limit of 20G.