7.8. 支持的 kdump 配置和目标
7.8.1. kdump 的内存要求
为了使 kdump 能够捕获内核崩溃转储并保存以便进一步分析,系统内存部分必须永久保留给捕获内核。
有关如何在命令行中更改内存设置的详情请参考 第 7.2.2.1 节 “配置内存用量”。有关如何在图形用户界面中设置保留内存量的步骤,请参考 第 7.2.3.1 节 “配置内存用量”。
表 7.1 列出 kdump
在 内核和 kernel
-alt
软件包中自动保留的内存。kdump
根据 CPU 架构和可用物理内存自动保留内存。
CPU 架构 | 可用内存 | 崩溃内存自动保留 |
---|---|---|
AMD64 和 Intel 64(x86_64) | 2 GB 及更多 | 每个 1 TB 161 MB + 64 MB |
64 位 ARM 架构(arm64) | 2 GB 及更多 | 512 MB |
IBM POWER ppc64/ppc64le | 2 GB 到 4 GB | 384 MB |
4 GB 到 16 GB | 512 MB | |
16 GB 到 64 GB | 1 GB | |
64 GB 到 128 GB | 2 GB | |
128 GB 及更多 | 4 GB | |
IBM Z (s390x) | 4 GB 及更多 |
每个 1 TB 的 161 MB + 64 MB |
有关各种 Red Hat Enterprise Linux 技术功能和限制的详情请参考 https://access.redhat.com/articles/rhel-limits。
7.8.2. 自动内存保留的最小阈值
在某些系统中,可以使用引导加载器配置文件中的 crashkernel=auto
参数自动为 kdump 分配内存,也可以在图形配置工具中启用这个选项。但是,要使此自动预留发挥作用,系统中需要提供一定大小的总内存。这一数量因系统架构而异。
下表列出了 内核和 kernel
-alt
软件包自动分配内存的阈值。如果系统内存少于表中指定的内存,则需要手动保留内存。
有关如何在命令行中更改这些设置的详情请参考 第 7.2.2.1 节 “配置内存用量”。有关如何在图形用户界面中更改保留内存量的步骤请参考 第 7.2.3.1 节 “配置内存用量”。
构架 | 所需的内存 |
---|---|
AMD64 和 Intel 64( | 2 GB |
IBM POWER( | 2 GB |
IBM Z ( | 4 GB |
64 位 ARM 架构 | 2 GB |
7.8.3. 支持的 kdump 目标
当捕获内核崩溃时,核心转储可以直接写入到设备中,作为文件存储在本地文件系统中,或者通过网络发送。下表包含 kdump 支持或明确不支持的转储目标的完整列表。
有关如何在命令行中配置目标类型的详情请参考 第 7.2.2.2 节 “配置 kdump 目标”。有关如何在图形用户界面中做到这一点的详情请参考 第 7.2.3.2 节 “配置 kdump 目标”。
类型 | 支持的目标 | 不支持的目标 |
---|---|---|
原始设备 | 所有本地附加的原始磁盘和分区。 | |
本地文件系统 |
直接附加的磁盘驱动器、硬件 RAID 逻辑驱动器、LVM 设备以及 |
在此表中未明确列出的任何本地文件系统,包括 |
远程目录 |
使用 |
使用 |
使用 |
| |
通过硬件和软件启动器使用 |
使用 | 基于多路径的存储。 |
通过 | ||
使用 | ||
使用无线网络接口访问的远程目录。 |
当转储到软件 FCoE
目标时,您可能会遇到内存不足(OOM)问题。在这种情况下,会增加默认的 crashkernel=auto
参数值。有关如何设置这个内核引导参数的详情请参考 第 7.2.2.1 节 “配置内存用量”。
7.8.4. 支持的 kdump 过滤等级
要缩小转储文件的大小,kdump 使用 makedumpfile
内核收集器压缩数据,并选择性地退出不相关的信息。下表包含 makedumpfile
实用程序目前支持的过滤级别的完整列表。
有关如何在命令行中配置内核收集器的说明,请参阅 第 7.2.2.3 节 “配置内核收集器”。有关如何在图形用户界面中做到这一点的详情请参考 第 7.2.3.3 节 “配置内核收集器”。
选项 | 描述 |
---|---|
| 零页 |
| 缓存页 |
| 缓存私有 |
| 用户页 |
| 可用页 |
makedumpfile
命令支持在 Red Hat Enterprise Linux 7.3 及之后的版本中删除透明大内存页和 hugetlbfs 页面。考虑这两种类型的大页用户页面,并使用 -8
级别将其删除。
7.8.5. 支持的默认操作
默认情况下,当 kdump 创建内核转储失败时,操作系统会重启。但是,您可以将 kdump 配置为在将内核转储保存到主目标时执行不同的操作。下表列出了 kdump 目前支持的所有默认操作。
有关如何在命令行中设置默认操作的详情请参考 第 7.2.2.4 节 “配置默认操作”。有关如何在图形用户界面中做到这一点的详情请参考 第 7.2.3.4 节 “配置默认操作”。
选项 | 描述 |
---|---|
| 尝试将内核转储保存到 root 文件系统。这个选项在与网络目标合并时特别有用:如果网络目标无法访问,这个选项配置 kdump 以在本地保存内核转储。之后会重启该系统。 |
| 重启系统,这个过程会丢失 core 转储文件。 |
| 关闭系统,这个过程会丢失 core 转储文件。 |
| 关闭系统,这个此过程会丢失 core 转储。 |
| 从 initramfs 内运行 shell 会话,允许用户手动记录核心转储。 |
7.8.6. 估算 kdump 大小
在规划和构建 kdump
环境时,需要知道在生成转储文件前需要多少空间。makedumpfile
命令可以帮助执行此操作。
使用 --mem-usage
功能估算转储文件所需的空间,如下所示:
# makedumpfile -f --mem-usage /proc/kcore
使用 -f
选项的 --mem-usage
功能适用于内核版本的 v4.11 及更新的版本。
对于早于 v4.11 的内核版本,在使用 --mem-usage
选项 -f
之前,请确保内核通过上游提交 464920104bf7 进行补丁。
mem-usage
选项提供有关可扩展页面的有用报告,可用于确定您要分配的转储级别。当系统处于代表负载下时运行此命令,否则 makedumpfile
会返回比生产环境中预期的值小的值。
[root@hostname ~]# makedumpfile -f --mem-usage /proc/kcore TYPE PAGES EXCLUDABLE DESCRIPTION ---------------------------------------------------------------------- ZERO 501635 yes Pages filled with zero CACHE 51657 yes Cache pages CACHE_PRIVATE 5442 yes Cache pages + private USER 16301 yes User process pages FREE 77738211 yes Free pages KERN_DATA 1333192 no Dumpable kernel data
makedumpfile
命令在页面中 报告。这意味着您必须根据内核页面大小(在 Red Hat Enterprise Linux 内核中)计算使用的内存大小(在 Red Hat Enterprise Linux 内核中)对于 AMD64 和 Intel 64 构架,以及 64 KB 用于 IBM POWER 架构。
7.8.7. 支持 内核和 kernel
-alt
软件包中的构架
下表提供了 内核和 kernel
-alt
软件包上的架构和可用内存支持概述。
CPU 架构 | 可用内存 | RHEL 7.5 及更早版本 | RHEL 7.6 及更新的版本 | RHEL-ALT-7.4 | rhel-ALT-7.5 及更新的版本 |
---|---|---|---|---|---|
| 2GB 及更多 | 每个 1TB 161MB + 64MB | 161MB + 64MB/1TB | 2GB 到 160MB | 2GB 到 160MB |
| 2GB 及更多 | 不适用 | 不适用 | 2GB 到 512MB | 2GB 到 512MB |
| 2GB 到 4GB | 384MB | 384MB | 不适用 | 不适用 |
4GB 到 16GB | 512MB | 512MB | 不适用 | 不适用 | |
16GB 到 64GB | 1GB | 1GB | 不适用 | 不适用 | |
64GB 到 128GB | 2GB | 2GB | 不适用 | 不适用 | |
128GB 及更多 | 4GB | 4GB | 不适用 | 不适用 | |
| 2GB 到 4GB | 384MB | 384MB | 384MB | 384MB |
4GB 到 16GB | 512MB | 512MB | 512MB | 512MB | |
16GB 到 64GB | 1GB | 1GB | 1GB | 1GB | |
64GB 到 128GB | 2GB | 2GB | 2GB | 2GB | |
128GB 及更多 | 4GB | 4GB | 4GB | 4GB | |
| 2GB 到 4GB | 不适用 | 不适用 | 384MB | 384MB |
4GB 到 16GB | 不适用 | 不适用 | 512MB | 512MB | |
16GB 到 64GB | 不适用 | 不适用 | 1GB | 1GB | |
64GB 到 128GB | 不适用 | 不适用 | 2GB | 2GB | |
128GB 及更多 | 不适用 | 不适用 | 4GB | 4GB | |
| 4GB 及更多 | 每个 1TB 161MB + 64MB | 每个 1TB 161MB + 64MB | 每个 1TB 161MB + 64MB | 160MB |