已索引

注意:无论是开启还是关闭kdump,都需要重启操作系统来重新分配内存。开启必须要重启才能生效。关闭可以不重启,但是不会释放内存。

Kdump is a kernel crash dumping mechanism. In the event of a system crash, kdump will capture information from your system that can be invaluable in determining the cause of the crash. Note that kdump does require reserving a portion of system memory that will be unavailable for other uses.

启用kdump

如果安装了图形界面,RHEL安装完成后的初始启动过程中会出现Kdump配置界面。Kdump是一种基于kexec的系统崩溃信息捕获机制,用于分析系统崩溃原因。当操作系统的内存足够时(大于等于2G),可以选择启用或者禁用Kdump。一旦启用kdump,立即会有128M的内存被保留给Kdump使用。如果操作系统内存较低,则不能启用Kdump功能。

如果安装系统时没有开启Kdump,可以通过如下方法进行开启(示例环境Redhat 6.5):

# system-config-kdump

配置kdump.jpg
该工具修改 /etc/kdump.conf 配置文件,自动在grub.conf中增加crashkernel=512M来保留内存给Kdump使用,并且将kdump服务设置为开机启动。

启用Kdump后,需要重启系统,初次启动系统时会生成 /boot/initrd-*.x86_64kdump.img文件。

启动完成后,检查Kdump服务状态:

# service kdump status
Kdump is operational

# free -m
会发现内存总量少了相应的数量。

模拟系统崩溃

通过sysrq强制系统崩溃,注意:不要在生产环境做此步操作

echo "c" > /proc/sysrq-trigger

该命令会让系统崩溃,如果没有开启 Kdump,系统会一直卡在那儿,如果开启了Kdump,执行后等待约几秒,系统会自动重启。

重启后查看宕机文件:

# ll -h /var/crash/'127.0.0.1-2017-10-22-21:37:57'
total 40M
-rw-------. 1 root root 40M Oct 22  21:38 vmcore
-rw-rw-r--. 1 root root 77K Oct 22  21:37 vmcore-dmesg.txt

禁用kdump

使用system-config-kdump工具禁用Kdump,仅仅是设置 chkconfig 为off,将crashkernel=512M从grub.conf中删除,服务仍然在运行,需要执行 service kdump stop 来停止kdump服务,但需要注意的是,即使停止了该服务,保留的内存也不会释放。

-- By 许望(RHCA、OCM、VCP)
最后修改:2022 年 01 月 17 日 02 : 24 PM
如果觉得我的文章对你有用,请随意赞赏