Red Hat Training

A Red Hat training course is available for RHEL 8

15.2. 配置 kdump 内存用量

kdump 的内存保留在系统引导过程中发生。内存大小是在系统的 Grand Unified Bootloader (GRUB)配置中设定的。内存大小取决于配置文件中指定的 crashkernel= 选项的值以及系统物理内存的大小。

您可以使用多种方式定义 crashkernel= 选项。您可以指定 crashkernel= 值或配置 auto 选项。crashkernel=auto 参数根据系统中的物理内存总量自动保留内存。配置后,内核将自动为捕获内核保留适当数量的所需内存。这有助于防止内存不足(OOM)错误。

注意

kdump 的自动内存分配因系统硬件架构和可用内存大小而异。

例如,在 AMD64 和 Intel 64 上,crashkernel=auto 参数仅在可用内存超过 1GB 时才起作用。64 位 ARM 架构和 IBM Power 系统需要超过 2 GB 的可用内存。

如果系统自动分配低于最小内存阈值,您可以手动配置保留内存量。

先决条件

流程

  1. 准备 crashkernel= 选项。

    • 例如:要保留 128 MB 内存,请使用:

      crashkernel=128M
    • 或者,您可以根据安装的内存总量将保留内存量设置为变量。变量中的内存保留语法为 crashkernel=<range1>:<size1>,<range2>:<size2>。例如:

      crashkernel=512M-2G:64M,2G-:128M

      如果系统内存总量为 512 MB 和 2 GB,则命令保留 64 MB 内存。如果内存量超过 2 GB,则内存保留为 128 MB。

    • 保留内存的偏移。

      有些系统需要保留具有特定固定偏移量的内存,因为 crashkernel 保留在早期发生,您可能需要为特殊用途保留更多内存。当您定义了一个偏移时,保留的内存将从这个偏移位置开始。要偏移保留的内存,请使用以下语法:

      crashkernel=128M@16M

      在这个示例中,kdump 从 16 MB 开始保留 128 MB 内存(物理地址 0x01000000)。如果将偏移参数设置为 0 或完全省略,kdump 会自动偏移保留内存。在设置变量内存保留时,也可以使用此语法。在这种情况下,偏移总是指定最后一个。例如:

      crashkernel=512M-2G:64M,2G-:128M@16M
  2. crashkernel= 选项应用到引导装载程序配置:

    # grubby --update-kernel=ALL --args="crashkernel=<value>"

    <value> 替换为您在上一步中准备的 crashkernel= 选项的值。