15.2. 配置 kdump 内存用量
kdump-utils 软件包维护默认的 crashkernel= 内存保留值。kdump 服务使用默认值为每个内核保留崩溃内核内存。默认值也可以充当参考基础值,来在手动设置 crashkernel= 值时估算所需的内存大小。崩溃内核的最小大小可能会因硬件和机器规格而异。
kdump 自动内存分配根据系统硬件架构和可用内存大小而有所不同。例如,在 AMD64 和 Intel 64 位构架上,crashkernel= 参数的默认值仅在可用内存超过 2 GB 时才可以正常工作。kdump-utils 工具在 AMD64 和 Intel 64 位构架上配置以下默认的内存保留:
crashkernel=2G-64G:256M,64G-:512M
您还可以运行 kdumpctl estimate ,来在不触发崩溃的情况下获取大概的值。估算的 crashkernel= 值可能不是一个准确的值,但可作为设置合适的 crashkernel= 值的参考。
引导命令行中的 crashkernel=1G-4G:192M,4G-64G:256M,64G:512M 选项在 RHEL 10 及更新版本上不再被支持。
测试 kdump 配置的命令将导致内核崩溃,且数据丢失。请仔细按照说明操作。您不能使用活跃的生产环境系统来测试 kdump 配置。
先决条件
- 您在系统上具有 root 权限。
-
您已满足配置和目标的
kdump要求。详情请查看支持的 kdump 配置和目标。 -
如果是 IBM Z 系统,您已安装了
zipl工具。
流程
为崩溃内核配置默认值:
# kdumpctl reset-crashkernel --kernel=ALL在配置
crashkernel=值时,请通过重启启用了kdump的系统来测试配置。如果kdump内核无法引导,请逐渐增加内存大小来设置一个可接受的值。要使用自定义
crashkernel=值:配置所需的内存保留。
crashkernel=192M另外,您还可以使用语法
crashkernel=<range1>:<size1>,<range2>:<size2>,根据安装的内存总量将保留的内存量设置为一个变量。例如:crashkernel=1G-4G:192M,2G-64G:256M如果系统内存总量为 1 GB 或大于 4 GB,则示例保留 192 MB 内存。如果内存量超过 4 GB,则为
kdump保留 256 MB。可选:偏移保留内存。
有些系统需要保留具有固定偏移量的内存,因为
crashkernel保留非常早,其希望为特殊用途保留一些区域。如果设置了偏移,则保留内存从此偏移开始。要偏移保留的内存,请使用以下语法:crashkernel=192M@16M示例保留从 16 MB 开始的 192 MB 内存(物理地址 0x01000000)。如果您偏移到 0 或没有指定值,则
kdump会自动偏移保留的内存。您还可以在设置变量内存保留时偏移内存,方法是将偏移指定为最后一个值。例如:crashkernel=1G-4G:192M,2G-64G:256M@16M。更新引导装载程序配置:
# grubby --update-kernel ALL --args "crashkernel=<custom-value>"<custom-value>必须包含您为崩溃内核配置的自定义crashkernel=值。
重启以使更改生效:
# reboot
验证
通过激活 sysrq 键使内核崩溃。address-YYYY-MM-DD-HH:MM:SS/vmcore 文件保存在 /etc/kdump.conf 文件中指定的目标位置。如果您选择默认的目标位置,vmcore 文件被保存在挂载在 /var/crash/ 下的分区中。
激活
sysrq键以引导到kdump内核:# echo c > /proc/sysrq-trigger命令导致内核崩溃,并在需要时重启内核。
显示
/etc/kdump.conf文件,并检查vmcore文件是否已保存到目标位置。如需更多信息,请参阅系统中的
grubby (8)手册页。