crashkernel说明

重要

本文中含有需要您注意的重要提示信息,忽略该信息可能对您的业务造成影响,请务必仔细阅读。

crashkernel参数用于在Linux系统中预留一部分内存,以便在系统崩溃时通过kdump服务捕获内存转储文件。这为系统管理员提供了强大的故障后分析工具,有助于快速定位和修复内核级别的问题。本文将介绍crashkernel参数的配置方法。

操作系统限制

  • Alibaba Cloud Linux 3

  • Alibaba Cloud Linux 2

crashkernel参数说明

Alibaba Cloud Linux 2/3默认在cmdline中设置了crashkernel参数。

架构

操作系统

默认参数

x86

Alibaba Cloud Linux 3

crashkernel=0M-2G:0M,2G-8G:192M,8G-128G:256M,128G-:384M

Alibaba Cloud Linux 2

ARM64

Alibaba Cloud Linux3

crashkernel=0M-2G:0M,2G-64G:256M,64G-:384M

crashkernel参数常见形式

  • 按偏移量设置。

    crashkernel=size[KMG][@offset[KMG]]

    例如crashkernel=256M@32M,表示预留crashkernel大小为256 M,物理地址偏移为32 M。

  • 按内存量设置。

    crashkernel=range1:size1[,range2:size2,...][@offset]

    例如crashkernel=0M-2G:0M,2G-64G:256M,64G-:384M,表示:

    • 系统内存 ≤ 2 G,则不预留crashkernel。

    • 2 G < 系统内存 ≤ 64 G,则预留256 M。

    • 系统内存 > 64 G,则预留384 M。

  • 按内存区域设置。

    crashkernel=size[KMG],low/high

    例如crashkernel=256M,high,表示在高内存空间预留256 M。

修改crashkernel参数

  1. 修改当前内核crashkernel参数。

    <crashkernel>需替换为要设置的值,例如256M

    sudo grubby --update-kernel="/boot/vmlinuz-$(uname -r)" --args="crashkernel=<crashkernel>"
  2. 重启实例使配置生效。

    警告

    重启实例将导致您的实例暂停运行,这可能引发业务中断和数据丢失。因此,建议您在执行此操作之前备份关键数据,并选择在非业务高峰期进行。

    sudo reboot
  3. 查看修改后的crashkernel预留大小。

    sudo kdumpctl showmem

kdump服务使用说明

说明

如需使用kdump服务,需确保系统内存 > 2 G。

  • 查看服务状态。

    sudo systemctl status kdump
  • 关闭/开启kdump服务。

    • 关闭kdump服务。

      sudo systemctl stop kdump
    • 开启dump服务。

      sudo systemctl start kdump