2015年1月4日日曜日

CentOS(RHEL)6 クラッシュダンプ用のメモリ割り当てを無効にする


クラッシュダンプを取得する必要がない + kexec-toolsのパッケージを導入していない(kdumpの機能を有効にしていない)にもかかわらず、クラッシュダンプ用にメモリの割り当て(消費)だけはされてしまうという状況を回避しようというのが今回の内容です。
※評価は、CentOS6.6(x86_64)でメモリ2GBを搭載したマシンで行っています


grub.confのkernel行にある”crashkernel=auto”の記述を削除する方法

(注意)
CentOS(RHEL)6系では、新しいkernelをインストールすると、必ず”crashkernel=auto”が付与されるようになっているので、新しいkernelをインストールした場合はその都度、削除をする必要があります
 ⇒ rpm -q --scripts kernel-<version> とするとその付与する処理が確認できます


/etc/init/kexec-disable.confを修正する方法

ファイルの中で”crashkernel=auto"をgrepしているのですが、/proc/cmdlineには実際に割り当てられたメモリの容量が入ってくるので、修正をしないと機能しません。
具体的には以下のように修正するか、その行自体を削除してしまっても良いと思います。

# diff -u /etc/init/kexec-disable.conf.orig /etc/init/kexec-disable.conf
--- /etc/init/kexec-disable.conf.orig     2015-01-02 23:02:11.067185577 +0900
+++ /etc/init/kexec-disable.conf  2015-01-02 23:06:03.607481618 +0900
@@ -8,7 +8,7 @@
 script
        if [ ! -x /sbin/kexec ] || ! chkconfig kdump 2>/dev/null ; then
-               grep -q "crashkernel=auto" /proc/cmdline && \
+               grep -q "crashkernel" /proc/cmdline && \
                echo -n "0" > /sys/kernel/kexec_crash_size 2>/dev/null
        fi
        exit 0
#

これで以下の条件にマッチすると、メモリの割り当てが無効になります。
・kexec-toolsパッケージがインストールされていない
・kexec-toolsパッケージがインストールされているが、自動起動がonになっていない

0 件のコメント:

コメントを投稿