メモリ割り当てが1GBなのだがfreeコマンドを叩いて見ると800MB程しか見えない現象
$ free total used free shared buff/cache available Mem: 787464 447412 96568 14580 388024 340052 Swap: 2232316 55912 2176404 $
どうやらcrashkernel用にメモリが確保されているようである
$ dmesg ~~~ [ 0.012094] Reserving 192MB of memory at 624MB for crashkernel (System RAM: 1023MB) ~~~
ということで、一般人はカーネルクラッシュ時に解析などしないため、これを解放したい。
/etc/etc/default/grubを見ると
GRUB_CMDLINE_LINUX="crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M resume=/dev/mapper/vg-swap rd.lvm.lv=vg/root rd.lvm.lv=vg/swap"
「crashkernel=1G-4G:192M,4G-64G:256M,64G-:512M」なるパラメータにより
1GBから4GBメモリの場合は192MBがcrashkernel用にもっていかれるようである。
このcrashkernelのパラメータを取り除いてしまうことにする。
$ sudo systemctl disable --now kdump.service $ sudo grubby --update-kernel=ALL --remove-args="crashkernel" $ sudo vi /etc/kdump.conf
「auto_reset_crashkernel yes」をnoに変更する※RHEL8系の場合不要
$ sudo shutdown -r now
kdumpを止める
grubbyコマンドでcrashkernelのパラメータを取り除く
再起動!
これでOK
$ free total used free shared buff/cache available Mem: 984068 278832 560940 3732 288688 705236 Swap: 2232316 244008 1988308 $
以上、めでたしめでたし。
なお、RHEL8系の場合は、OSインストール時にインストーラーでkdumpを無効にしておけば
カーネルの起動オプションに、crashkernelのパラメータが付かないため、このようなパラメータ修正を後からする必要が無い。
RHEL9系の場合、インストーラーでkdumpを無効にしておいても次のカーネルアップデートでパラメータが付与される事があるので注意すること。
参考URL:https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/changing-kernel-command-line-parameters-for-all-boot-entries_configuring-kernel-command-line-parameters
https://docs.redhat.com/ja/documentation/red_hat_enterprise_linux/9/html/managing_monitoring_and_updating_the_kernel/changing-kernel-command-line-parameters-for-all-boot-entries_configuring-kernel-command-line-parameters