本文将以centos系统为例,说明kdump的配置。

什么是kdump

kdump 是一种crash dump捕获机制,用来捕获kernel crash时候产生的crash dump。

kdump需要配置两个不同目的的kernel,其中一个我们在这里称作standard(production) kernel;另外一个称之为crash(capture)kernel。

standard(production)kernel,是指正在使用的kernel,当standard kernel在使用的过程中出现crash的时候, kdump会切换到crash kernel。

简单来说,standard kernel会在运行时发生crash,而crash(capture) Kernel 会被用来捕获production kernel crash时候产生的crash dump。

捕获crash dump是在新的crash(capture)kernel 的上下文中来捕获的,而不是在standard kernel上下文进行。

具体是当standard kernel方式crash的时候,kdump通过kexec(后面介绍)自动启动进入到crashkernel当中。

如果启动了kdump服务,standard kernel会预留一部分内存, 这部分内存用来启动crashkernel。

kdump机制主要包括两个组件:kdump和kexec。

什么是kexec

kexec 是一个快速启动kernel的机制,它运行在某一正在运行的kernel中,启动一个新的kernel(这里是crashkernel),而且不用重新经过BIOS就可以完成启动。因为一般BIOS都会花费很长的时间,尤其是在大型并且同时连接许多外部设备的Server上的环境下,BIOS会花费更多的时间。

内核kdump选项及其依赖选项

CONFIG_DEBUG_INFO=Y

CONFIG_CRASH_DUMP=y

CONFIG_PROC_VMCORE=y

CONFIG_KEXEC=y

kexc-tools工具安装

kdump需要安装kexec-tools-2.0.0-145.el6.x86_64.rpm工具,依赖包如下:

1. busybox-1.15.1-10.el6.x86_64.rpm

2. elfutils-libs-0.148-1.el6.x86_64.rpm

3. kpartx-0.4.9-31.el6.x86_64.rpm

注:以上安装包都在centos6的iso中。

kdump配置

修改grub.conf

kernel行增加 crashkernel=192M

注:在centos6中crashkernel=xxxM 。在centos5.2中 crashkernel=xxxM@xxM 格式请注意。default=1,表示缺省启动项为第2项(按照 0、1、2...排列)。crashkernel=128M@16M 增加的位置,在kernel 所在的行末尾加,但要放在initrd之前。

配置好grub.conf后重启机器,切换到带有crashkernel参数的内核启动。

配置vmcore保存路径

默认情况下kdump会将保存的文件保存在/var/crash目录下,可以修改kdump.conf,更改此路径。vmcore的大小与内存有关,所以一定要确保vmcore保存路径空间容量够用。

kdump服务开启

1. 执行 chkconfig --level35 kdump on

2. 执行service kdump start;显示Kdump is operational表示配置成功。

验证配置

1. 通过sysrq强制系统崩溃 echo c 〉/proc/sysrq-trigger;

2. 机器会panic重启,等待重启后,正常会在/var/crash 目录下生成一个时间目录里面有vmcore文件;

问题总结

1. 在服务开启时可能会出现Yourrunning kernel is using more than 70% of the amount of space you reserved forkdump, you should consider increasing your crashkernel reservation 的警告。需要将crashkernel的内存值需要放大即可解决警告信息。

2. 当echo c > /proc/sysrq-trigger时,可能会出现OOM的情况,这个是因为crashkernel的值太小。推荐使用192M,如还出现OOM可继续加大。

3. 在centos6.0的情况下,默认crashkernel=auto。当物理内存小于4G的情况下,这个值不管用,需给出固定的值。

linux kdump文件 生成,linux kdump搭建相关推荐

  1. linux设备文件生成,Linux设备文件自动生成(示例代码)

    第一种是使用mknod手工创建:# mknod 第二种是自动创建设备节点:利用udev(mdev)来实现设备文件的自动创建,首先应保证支持udev(mdev),由busybox配置. 具体udev相关 ...

  2. linux 校验文件生成,在Linux中了解如何使用MD5校验和生成和验证文件

    校验和是用作在数据正确数字的总和,其可以稍后用于存储或传输期间检测数据中的错误的一个数字.MD5( 消息摘要5)的款项可以用作校验和,以验证文件或字符串在Linux的文件系统 . MD5校验和是128 ...

  3. linux mkdir 文件夹,Linux mkdir 创建文件夹命令

    介绍: 该命令创建指定的目录名,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录 语法: mkdir [-m] [-p] 目录名 选项介绍: -m: 对新建目录设置 ...

  4. php linux脚本文件,Unix/Linux中如何直接执行PHP脚本文件?

    使用Linux系统的服务器都有搭建完整的PHP环境,因此有些用户会用PHP去写一些执行自动化任务的脚本,可是发现每次执行PHP脚本都需要使用php myscript.php的方式,感觉有点麻烦.其实我 ...

  5. linux 音频文件长度,Linux下压缩音频文件

    安装工具 sudo apt-get install lame 具体用法可以查看帮助  lame --help 通过更改音频文件的帧数 可以让文件变小  但是音质也会随之下降 现在比较多的mp3文件是1 ...

  6. linux 链接 文件,聊聊 Linux 里的文件链接

    在 Linux 中,可以对文件生成链接.链接有两种,一种是软链接,一种是硬链接.这两种链接分别有什么作用呢?今天我们就来聊一聊. 如何生成链接? ln -s [原文件] [目标文件] #对原文件生成一 ...

  7. linux 函数 文件校验,Linux中的文件效验命令

    在网络传输.设备之间转存.复制大文件等时,可能会出现传输前后数据不一致的情况.这种情况在网络这种相对更不稳定的环境中,容易出现.那么校验文件的完整性,也是势在必行的. md5sum命令用于生成和校验文 ...

  8. linux 查找文件 locate,linux文件查找(find,locate)

    文件查找: locate: 非实时,模糊匹配,查找是根据全系统文件数据库进行的: # updatedb, 手动生成文件数据库 速度快 find: 实时 精确 支持众多查找标准 遍历指定目录中的所有文件 ...

  9. linux 压缩文件性能,Linux压缩工具的性能比较

    Linux压缩工具的性能比较 一.Linux压缩工具概述 在Linux系统中,提供了许多压缩工具,虽然方便,但也难免造成一些混乱.笔者通过一段时间的整理,将它们理一理顺,希望能够对大家有所帮助: 首先 ...

最新文章

  1. python读取excel写入数据库_python实现读取excel写入mysql的小工具详解
  2. python_购物车
  3. Spring5的系统架构
  4. 大剑无锋之如何评判一个算法的优劣【面试推荐】
  5. 斐波那契数列 (C#)
  6. 《Python分布式计算》第2章 异步编程 (Distributed Computing with Python)
  7. 100UF50V 10*8.4贴片电解电容封装尺寸
  8. 华为手机楷体字体下载_正楷字体下载正楷字体官方下载[字体下载]-华军软件园...
  9. 【论文笔记】基于聚类特征深度LSTM的语音情感识别
  10. Qt 之 QQ系统表情(一)
  11. Windows Terminal 使用 pem 文件连接服务器
  12. MarkDown桌面版使用下载+安装+使用教程(包括全套的使用语法,欢迎大家查看)
  13. causalml安装记录
  14. 服务器4通道内存性能测评,【华擎X99评测】两代多频对比 看DDR3/DDR4内存性能实测(全文)_华擎 X99-WS_主板评测-中关村在线...
  15. 记公司同事的一次集体活动
  16. Python中文社区新专栏作者计划
  17. 2020 乐山师范学院新生程序设计大赛题解
  18. android自定义秒表,Android实现的秒表计时器示例
  19. 1一10到时的英文单词_1到10的英文怎么写
  20. Qt开发环境搭建(Linux)

热门文章

  1. RGB、YUV和YCbCr三种颜色空间
  2. 对话框中显示jpg,bmp图片和对话框动态显示图片
  3. Linux 设置 jdk 环境变量
  4. (转)对冲基金之王科恩,天才还是魔鬼?——读《黑色优势》有感
  5. 8.Docker容器镜像仓库存储原理(前世今身)与搬运技巧
  6. 在Unity项目添加Newtonsoft.Json(Json.NET)错误及解决办法
  7. 学习人工智能必知的7个步骤,零基础也能看懂
  8. 基于SDFormat创建ROS+Gazebo仿真世界和模型
  9. 有效人脉的本质就四个字:价值交换
  10. 函数极限存在准则:夹逼准则