首页/系统/信创系统运维速查/Kdump 崩溃转储配置
系统与安装65 条

Kdump 崩溃转储配置

服务器建议启用 Kdump:内核崩溃时自动转储内存镜像,便于定位宕机原因;需要预留 crashkernel 内存并启用 kdump 服务。

信创系统运维速查系统更新于 2026-10-13

Kdump 是什么

Kdump 是 Linux 内核的崩溃转储机制:系统正常运行时就预留一小块内存给第二个内核(crash kernel),主内核发生 panic 时由它接管,把内存镜像写到本地磁盘或远端(NFS、SSH),事后用 crash 工具分析。它不能阻止宕机,但决定宕机之后有没有证据可查。

基本信息

转储配置/etc/kdump.conf(路径与传输方式)
系统参数/etc/sysconfig/kdump(RHEL 系)、/etc/default/kdump-tools(Debian 系)
内核前提内核命令行含 crashkernel= 预留参数
服务systemctl enable --now kdump
权限要求root

典型使用场景

  • 生产服务器与数据库主机按基线要求开启转储,宕机后可定位根因
  • 把 panic 现场交给内核或原厂工程师分析
  • KVM 宿主机、超融合节点的故障复盘
  • 等保类合规核查要求具备内核崩溃分析能力
  • 内存扩容或更换内核版本后复核 crashkernel 预留是否仍合适

检查与启用

检查与启用
grep crashkernel /proc/cmdline            # 是否已预留 crashkernel 内存
grep -E '^(path|nfs|ssh|raw|core_collector)' /etc/kdump.conf   # 转储目标与收集器设置
kdumpctl status                            # 部分发行版用它做预留量与服务预检
systemctl status kdump --no-pager | head   # 服务是否 active
vim /etc/default/grub                      # 在 GRUB_CMDLINE_LINUX 追加 crashkernel=512M
grub2-mkconfig -o /boot/grub2/grub.cfg     # RHEL 系重建引导配置,Debian 用 update-grub
reboot                                     # 内核命令行改动必须重启才生效
ls -lh /var/crash/                         # 转储落点,按 path 配置确认

转储方式对照

方式配置要点适用条件
本地路径path /var/crash单机场景,磁盘余量要单独规划
NFSnfs server:/export集中收集,panic 后网络仍能通
SSHssh user@目标机跨网络收集,需预置免密密钥
裸设备分区raw /dev/sdaX需要专盘,写入不经过文件系统
crashkernel 预留量要按内存规模给:小内存机器 512M 通常够用,TB 级内存机器需要更大值或由内核自动估算;预留过小会转储失败,过大则白占业务内存。
转储文件本质是一份内存镜像,可能包含口令、密钥、业务明文数据,存放与清理要按数据保密要求管理,不能随手放在共享目录里不管。

易错点

  • 只装了 kdump 包没在内核命令行加 crashkernel:服务状态看着正常,真出 panic 时抓不到转储
  • crashkernel 预留量拍脑袋:过小导致的失败往往只在崩溃那一刻才暴露,等于白开
  • 改了 crashkernel 却没重建 grub 配置或没重启:改动没有生效,重启才作数
  • 转储目标放在易故障的同一块盘上,或落在容量紧张的根分区:崩溃后无处可写或写满系统盘
  • 不做验证:用 kdumpctl status 或触发一次测试崩溃确认链路,比事后才发现没配好划算

数据来源与参考

  • Kdump 官方文档
  • openEuler 内核转储指南
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌