すべてのプロダクト
Search
ドキュメントセンター

Elastic Compute Service:Linuxインスタンスの予約メモリのサイズを変更する

最終更新日:Jan 23, 2025

kdumpは、カーネルパニックなどのカーネルクラッシュがオペレーティングシステムで発生したときにメモリダンプ情報をキャプチャできるLinuxカーネルクラッシュダンプメカニズムです。 これは、クラッシュの原因を分析するのに役立ちます。 kdumpでは、オペレーティングシステムがクラッシュした場合でも、カーネルダンプ情報を格納するのに十分なメモリを使用できるようにするために、クラッシュカーネルメモリと呼ばれる予約済みメモリが必要です。 このトピックでは、Linux Elastic Compute Service (ECS) インスタンスの予約メモリのサイズを表示および変更する方法について説明します。

オペレーティングシステムの予約メモリサイズの表示

kdumpが予約メモリを使用できるようにするには、GRand Unified Bootloader (GRUB) 構成ファイルにcrashkernelパラメーターを追加し、各メモリセグメントの予約メモリのサイズを指定する必要があります。

説明

デフォルトでは、GRUB設定ファイルは /etc/default/grubディレクトリに保存されます。 Alibaba Cloud Linux 3では、GRUB設定ファイルは /usr/share/alinux-base-setup/cmdlineディレクトリに保存されます。

オペレーティングシステムが起動すると、GRUBはcrashkernelパラメーターを構成ファイルからカーネルに渡し、起動時にkdump用に予約する必要があるメモリの量をカーネルに通知します。 システム実行時に /proc/cmdlineファイルを表示して、crashkernelパラメーターが期待どおりに機能するかどうかを確認できます。

  1. 次のコマンドを実行して、crashkernelパラメーターが有効かどうかを確認します。

    cat /proc/cmdline

    次のコマンド出力には、crashkernelパラメーターの設定が含まれています。これは、crashkernelパラメーターが有効であることを示します。

    image

    crashkernelパラメータ

    このセクションでは、crashkernelパラメーターについて説明します。 この例では、0M-2G:0M、2G-8G:192M、8G-:256Mの値が使用されます。

    • ECSインスタンスのメモリサイズまたはインスタンス上のオペレーティングシステムのメモリサイズが2 GB以下の場合、インスタンス上のアプリケーションで使用可能なメモリ量が不足しているため、オペレーティングシステム用にメモリが予約されていません。 オペレーティングシステムのメモリ量が2 GB以下の場合、kdumpは使用できません。

    • ECSインスタンスのメモリサイズまたはインスタンス上のオペレーティングシステムのメモリサイズが2 GBを超えて8 GB以下の場合、オペレーティングシステムは192 MBのメモリを予約します。

    • ECSインスタンスのメモリサイズまたはインスタンス上のオペレーティングシステムのメモリサイズが8 GBを超える場合、オペレーティングシステムは256 MBのメモリを予約します。

  2. 次のコマンドを実行して、予約メモリのサイズを表示します。

    cat /sys/kernel/kexec_crash_size

    次のコマンド出力が返されます。これは、予約されたメモリのサイズを示します。 単位はバイトです。 この例では、201326592が返されます。これは、192 MBのメモリが予約されていることを示します。

    image

予約メモリを解放してkdumpを無効にする

インスタンスのkdumpを有効にする必要がなく、リソースの無駄を防ぐために予約されたメモリアドレス空間をオペレーティングシステムに返す場合は、次の操作を実行して予約されたメモリを解放し、kdumpを無効にします。

重要

予約されたメモリを解放してkdumpを無効にすると、オペレーティングシステムが故障したときにオペレーティングシステムがカーネルクラッシュ情報を収集できない場合があります。 その結果、カーネル関連の問題をできるだけ早く特定して修正することはできません。 これは、インスタンスのサービス継続性と安定性に影響します。 作業は慎重に行ってください。

Alibaba Cloud LinuxおよびCentOS

  1. GRUB設定ファイルをバックアップします。

    • Alibaba Cloud Linux 2またはCentOSで次のコマンドを実行します。

      sudo cp /etc/default/grub /etc/default/grub.bak
    • Alibaba Cloud Linux 3で次のコマンドを実行します。

      sudo cp /usr/share/alinux-base-setup/cmdline /usr/share/alinux-base-setup/cmdline.bak
  2. GRUB設定ファイルからcrashkernelパラメーターの設定を削除し、ファイルを保存します。

    • Alibaba Cloud Linux 2またはCentOSで次のコマンドを実行します。

      sudo vim /etc/default/grub

      image

      GRUB_CMDLINE_LINUX行でcrashkernelパラメーターを見つけ、crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384Mの設定を削除します。 Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

    • Alibaba Cloud Linux 3で次のコマンドを実行します。

      sudo vim /usr/share/alinux-base-setup/cmdline

      image

      crashkernel=0M-2G:0M、2G-8G:192M、8G-128G:256M、128G-:384Mの行を構成ファイルから削除します。 Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

  3. 次のコマンドを実行して、GRUB設定を更新します。

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    説明

    CentOS Stream 9、AlmaLinux 9、Rocky Linux 9などのRed Hat Enterprise Linux (RHEL) 9に基づくディストリビューションでは、sudo grub2-mkconfig -o /boot/grub2/grub.cfg -- update-bls-cmdlineコマンドを実行してGRUB設定を更新します。

  4. 次のコマンドを実行してkdumpを無効化および停止します。

    sudo systemctl disable kdump
    sudo systemctl stop kdump
  5. 次のコマンドを実行して、変更を有効にするためにオペレーティングシステムを再起動します。

    sudo reboot
  6. kdumpのステータスとcrashkernelパラメーターを表示して、変更が有効かどうかを確認します。

    1. 次のコマンドを実行して、kdumpのステータスを表示します。 kdumpがinactive (dead) 状態の場合、kdumpは無効になります。

      sudo systemctl status kdump

      image

    2. 次のコマンドを実行してインスタンスのGRUB設定ファイルを取得し、crashkernelパラメーターの設定が削除されているかどうかを確認します。

      cat /proc/cmdline

      image

UbuntuとDebian

  1. 次のコマンドを実行して、GRUB構成ファイルをバックアップします。

    sudo cp /etc/default/grub /etc/default/grub.bak
  2. 次のコマンドを実行して、GRUB設定ファイルからcrashkernelパラメーターの設定を削除し、ファイルを保存します。

    sudo vim /etc/default/grub

    image

    GRUB_CMDLINE_LINUX行でcrashkernelパラメーターを見つけ、crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384Mの設定を削除します。 Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

  3. 次のコマンドを実行して、GRUB設定を更新します。

    sudo update-grub

    image

  4. 次のコマンドを実行してkdumpを無効化および停止します。

    sudo systemctl disable kdump-tools
    sudo systemctl stop kdump-tools
  5. 次のコマンドを実行して、変更を有効にするためにオペレーティングシステムを再起動します。

    sudo reboot
  6. kdumpのステータスとcrashkernelパラメーターを表示して、変更が有効かどうかを確認します。

    1. 次のコマンドを実行して、kdumpのステータスを表示します。 kdumpがinactive (dead) 状態の場合、kdumpは無効になります。

      sudo systemctl status kdump

      image

    2. 次のコマンドを実行してインスタンスのGRUB設定ファイルを取得し、crashkernelパラメーターの設定が削除されているかどうかを確認します。

      cat /proc/cmdline

      image

メモリ予約とkdumpの有効化

kdumpを使用してインスタンスのメモリダンプ情報をキャプチャする場合は、次の操作を実行してcrashkernelパラメーターの設定を追加し、kdumpを有効にします。

Alibaba Cloud LinuxおよびCentOS

  1. GRUB設定ファイルをバックアップします。

    • Alibaba Cloud Linux 3で次のコマンドを実行します。

      sudo cp /usr/share/alinux-base-setup/cmdline /usr/share/alinux-base-setup/cmdline.bak
    • Alibaba Cloud Linux 2またはCentOSで次のコマンドを実行します。

      sudo cp /etc/default/grub /etc/default/grub.bak
  2. crashkernelパラメーターの設定をGRUB設定ファイルに追加し、ファイルを保存します。

    • Alibaba Cloud Linux 3で次のコマンドを実行します。

      sudo vim /usr/share/alinux-base-setup/cmdline

      image

      crashkernel=0M-2G:0M、2G-8G:192M、8G-128G:256M、128G-:384Mの設定を設定ファイルに追加します。 Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

    • Alibaba Cloud Linux 2またはCentOSで次のコマンドを実行します。

      sudo vim /etc/default/grub

      image

      GRUB_CMDLINE_LINUX行でcrashkernelパラメーターを見つけ、crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M設定を設定ファイルに追加します。 Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

  3. 次のコマンドを実行して、GRUB設定を更新します。

    sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    説明

    CentOS Stream 9、AlmaLinux 9、Rocky Linux 9などのRHEL 9に基づくディストリビューションでは、sudo grub2-mkconfig -o /boot/grub2/grub.cfg -- update-bls-cmdlineコマンドを実行してGRUB設定を更新します。

  4. 次のコマンドを実行してkdumpを有効にします。

    sudo systemctl enable kdump
  5. 次のコマンドを実行して、変更を有効にするためにオペレーティングシステムを再起動します。

    sudo reboot
  6. kdumpのステータスとcrashkernelパラメーターを表示して、変更が有効かどうかを確認します。

    1. 次のコマンドを実行して、kdumpのステータスを表示します。 kdumpがactive (exited) 状態の場合、kdumpが有効になります。

      image

    2. 次のコマンドを実行してインスタンスのGRUB設定ファイルを取得し、crashkernelパラメーターの設定が追加されているかどうかを確認します。

      cat /proc/cmdline

UbuntuとDebian

  1. 次のコマンドを実行して、GRUB構成ファイルをバックアップします。

    sudo cp /etc/default/grub /etc/default/grub.bak
  2. 次のコマンドを実行して、crashkernelパラメーターの設定をGRUB設定ファイルに追加し、ファイルを保存します。

    sudo vim /etc/default/grub

    image

    crashkernel=0M-2G:0M、2G-8G:192M、8G-128G:256M、128G-:384M構成をGRUB_CMDLINE_LINUX行に追加します。 Escキーを押して :wqと入力し、enterキーを押して設定ファイルを保存して閉じます。

  3. 次のコマンドを実行して、GRUB設定を更新します。

    sudo update-grub
  4. 次のコマンドを実行して、kdumpを有効にして起動します。

    sudo systemctl enable kdump-tools
    sudo systemctl start kdump-tools
  5. 次のコマンドを実行して、変更を有効にするためにオペレーティングシステムを再起動します。

    sudo reboot
  6. kdumpのステータスとcrashkernelパラメーターを表示して、変更が有効かどうかを確認します。

    1. 次のコマンドを実行して、kdumpのステータスを表示します。 kdumpがactive (exited) 状態の場合、kdumpが有効になります。

      image

    2. 次のコマンドを実行してインスタンスのGRUB設定ファイルを取得し、crashkernelパラメーターの設定が追加されているかどうかを確認します。

      cat /proc/cmdline