比较 kdump makedumpfile 中的压缩方法

背景

在出现 Kernel Panic 的时候,kdump 可以帮助我们收集 vmcore, 以便后续对故障原因进行分析。然而,近些年的服务器动辄上百G的内存,转储一个 vmcore 所耗费的时间显得相对较长,增加了 down time.

在 RHEL7/CentOS7 中, kdump 提供了三种压缩方法(zlib, lzo, snappy),我们可以选择一种较快速的压缩方法来节省收集 vmcore 的时间。

压缩方法可以在 kdump.conf 中的 makedumpfile 一行里设置。

# man makedumpfile

-c,-l,-p
  Compress dump data by each page using zlib for -c option, lzo for -l option or snappy for -p option.  (-l option needs USELZO=on and -p option needs USESNAPPY=on when building)
  A user cannot specify this option with -E option, because the ELF format does not support compressed data.
  Example:
  # makedumpfile -c -d 31 -x vmlinux /proc/vmcore dumpfile

zlib 是 gzip 所使用的压缩方法,通常而言它比 lzo 和 snappy 慢,而压缩比稍微高于 lzo 和 snappy.
继续阅读“比较 kdump makedumpfile 中的压缩方法”

RHEL6: 安装并启用Kdump

参考文档

1. The kdump Crash Recovery Service https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html/Deployment_Guide/ch-kdump.html
2. 深入探索 Kdump,第 1 部分:带你走进 Kdump 的世界 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump1/
3. 深入探索 Kdump,第 2 部分: Kdump 图形化配置工具 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump2/
4. 深入探索 Kdump,第 3 部分: Kdump 原理探秘 http://www.ibm.com/developerworks/cn/linux/l-cn-kdump3/
5. 深入探索 Kdump,第 4 部分: kdump 的亲密战友 crash http://www.ibm.com/developerworks/cn/linux/l-cn-kdump4/

Kdump、vmcore是什么?

Kdump是一套内核崩溃转储机制。当遇到Kernel Panic的时候,它能将当前内核内存转储出来,转储出来的内存文件叫vmcore.

简单地理解,系统在启动的时候,除了用于正常工作的生产内核,还会启动一个捕获内核(也就是“备胎”)。在生产内核正常运行的时候,捕获内核就安安静静地坐着不干活;当生产内核Panic,捕获内核就会出来,帮生产内核收尸,这条尸就是vmcore。
继续阅读“RHEL6: 安装并启用Kdump”