zoukankan      html  css  js  c++  java
  • kdump简单的介绍

        kdump是2.6.16之后,内核引入的一种新的内核崩溃现场信息收集工具。当一个内核崩溃后(我们称之为panic),内核会使用kexec(类似于进程的exec,把当前内核换掉)进入到一个干净的备份内核(只使用少量内存,由第一个内核预留放在一块内存中),干净的内核启动后,仍旧是用户态服务初始化,这时会使用kdump工具会从内核读出需要的信息,再写到磁盘上的一个vmcore的文件中。之后就可以使用crash工具来分析vmcore文件了(就像gdb分析用户态崩溃现场core文件一样)。

        当系统崩溃时,kdump 使用 kexec 启动到第二个内核。第二个内核通常叫做捕获内核,以很小内存启动以捕获转储镜像。第一个内核保留了内存的一部分给第二内核启动用。由于 kdump 利用 kexec 启动捕获内核,绕过了 BIOS,所以第一个内核的内存得以保留。这是内核崩溃转储的本质。kdump 需要两个不同目的的内核,生产内核和捕获内核。生产内核是捕获内核服务的对像。捕获内核会在生产内核崩溃时启动起来,与相应的 ramdisk 一起组建一个微环境,用以对生产内核下的内存进行收集和转存。

        kdump配置文件存放在/etc/kdump.conf 配置文件中配置了一些相关信息,包括系统崩溃时,dump的路径,默认情况下是放在/var/crash目录下面。可以通过sysrq强制让系统产生一个vmcore。

    echo c > /proc/sysrq-trigger

        这造成内核崩溃,如配置有效,系统将重启进入 kdump 内核,当系统进程进入到启动 kdump 服务的点时,vmcore 将会拷贝到你在 kdump 配置文件中设置的位置。RHEL 的缺省目录是 : /var/crash;SLES 的缺省目录是 : /var/log/dump。然后系统重启进入到正常的内核。一旦回复到正常的内核,就可以在上述的目录下发现 vmcore 文件,即内存转储文件。可以使用之前安装的 kernel-debuginfo 中的 crash 工具来进行分析。

  • 相关阅读:
    在XP下基于VHD版XP 2003 win7制作的RAMOS心得
    联想G480笔记本安装系统
    多路由器环境下路由器的入口IP地址及DHCP设置探讨
    无线路由器工作模式的区别
    Shiro学习
    R语言学习网址
    2018年刑侦科目推理试题
    信息熵
    myeclipse使用步骤总结
    eclipse没有server选项
  • 原文地址:https://www.cnblogs.com/xingmuxin/p/9093501.html
Copyright © 2011-2022 走看看