14.2. 在 RHEL 9 上配置 kdump 内存使用
kexec-tools
软件包维护默认的 crashkernel=
内存保留值。kdump
服务使用默认值为每个内核保留崩溃内核内存。默认值也可以充当参考基础值,来在手动设置 crashkernel=
值时估算所需的内存大小。崩溃内核的最小大小可能会因硬件和机器规格而异。
kdump
自动内存分配根据系统硬件架构和可用内存大小而有所不同。例如,在 AMD64 和 Intel 64 位构架中,crashkernel=
参数的默认值仅在可用内存超过 1 GB 时才可以正常工作。kexec-tools
工具在 AMD64 和 Intel 64 位构架上配置以下默认内存保留:
crashkernel=1G-4G:192M,4G-64G:256M,64G:512M
您还可以运行 kdumpctl estimate
在不触发崩溃的情况下获取大约值。估算的 crashkernel=
值可能不是准确的值,但可作为设置适当的 crashkernel=
值的参考。
RHEL 9 及更新的版本不再支持引导命令行中的 crashkernel=auto
选项。
先决条件
- 您在系统上具有 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
测试 kdump
配置的命令将导致内核崩溃,且数据丢失。请谨慎操作。您不能使用活跃的生产环境系统来测试 kdump 配置。
通过激活 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
文件是否已保存到目标位置。
其他资源
- 如何在系统引导 之前手动修改 GRUB 中的引导参数。
-
系统中
grubby (8)
手册页。