From ae45e6f1bba722fe64f36c35bfa4435e7b8317a3 Mon Sep 17 00:00:00 2001 From: Xunlei Pang Date: Wed, 29 Mar 2017 16:16:57 +0800 Subject: [PATCH] mkdumprd: reduce lvm2 memory under kdump We replace "reserved_memory = XXXX"(default value is 8192) with "reserved_memory = 1024" in /etc/lvm/lvm.conf used by "lvm2", it can save 7MB peak memory consumption, so lower the possibility of OOM under kdump. For kdump, we don't have too many lvm targets, lvm2 locates in the RAM(rootfs), so don't need that much memory, as discussed with lvm people, they agreed that we use 1MB under kdump as long as there are not that many lvm targets invloved. We modify /etc/lvm/lvm.conf when "99kdumpbase" install() is executed, because it is parsed after "90lvm" by dracut. We add the code unconditionally with &>/dev/null to ignore errors, it doesn't matter in case of "lvm" not included(i.e. there is no lvm.conf). Signed-off-by: Xunlei Pang Acked-by: Dave Young --- dracut-module-setup.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 1f96bb8..5b2c942 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -743,4 +743,13 @@ install() { # target. Ideally all this should be pushed into dracut iscsi module # at some point of time. kdump_check_iscsi_targets + + # For the lvm type target under kdump, in /etc/lvm/lvm.conf we can + # safely replace "reserved_memory=XXXX"(default value is 8192) with + # "reserved_memory=1024" to lower memory pressure under kdump. We do + # it unconditionally here, if "/etc/lvm/lvm.conf" doesn't exist, it + # actually does nothing. + sed -i -e \ + 's/\(^[[:space:]]*reserved_memory[[:space:]]*=\)[[:space:]]*[[:digit:]]*/\1 1024/' \ + ${initdir}/etc/lvm/lvm.conf &>/dev/null }