crash linux主要命令,kdump和crash的配置方法以及故障分析方法

Linux的内核十分稳定,但仍不可避免会遇到崩溃的情况,获取内核崩溃时的内存镜像,有助于分析系统在崩溃前发生了什么,分析原因并修复错误,进而进一步提升系统的稳定性。

【正文】

一   kdump简介

kdump 是目前最有效的linux内存镜像收集机制,广泛应用于各大linux厂商的各种产品中,在 debug 内核方面起着不可替换的重要作用。

Kdump 是一种基于 kexec 的 Linux 内核崩溃捕获机制,将 kernel 崩溃前的内存镜像保存,程序员通过分析该文件找出 kernel 崩溃的原因,从而进行系统改进。

Kdump用于对内存镜像的转储,它不但可以转储内存镜像到本地硬盘,还可以将内存镜像通过NFS,SSH等协议转储到不同机器的设备上。

Kdump分为两个组件:Kexec和Kdump。

Kexec是一种内核的快速启动工具,可以使新的内核在正在运行的内核(生产内核)的上下文中启动,而不需要通过耗时的BIOS检测,方便内核开发人员对内核进行调试。Kdump是一种有效的内存转储工具,启用Kdump后,生产内核将会保留一部分内存空间,用于在内核崩溃时通过Kexec快速启动到新的内核,这个过程不需要重启系统,因此可以转储崩溃的生产内核的内存镜像。;

二   kdump的安装配置

2.1       安装包

Kdump 用到的各种工具都在 kexec-tools 中。kernel-debuginfo 则是用来分析 vmcore 文件。从 rhel5 开始,kexec-tools 已被默认安装在发行版。而如果需要调试 kdump 生成的 vmcore 文件,则需要手动安装 kernel-debuginfo 包。检查安装包操作,注意kernel-debuginfo和kernel-debuginfo的版本要和内核版本一致:

2d2d8bbd08e1336995b800938978fb43.png

2.2      配置kdump配置文件

在/boot/grub/grub.conf文件中添加内核参数"crashkernel=Y@X",这里,Y 是为 kdump 捕捉内核保留的内存,X 是保留部分内存的开始位置。对于 i386 和 x86_64, 编辑 /etc/grub.conf, 在内核行的最后添加"crashkernel=128M" 。另外建议不要设置为crashkernel=auto,因为rhel6引入的”a

你可能感兴趣的:(crash,linux主要命令)