kdump内核转储

CentOS 7.5 配置Kdump

安装Kdump

~]# yum install kexec-tools

安装Kdump图形化

~]# yum install system-config-kdump

配置保留内存

~]# vim /etc/default/grub	# 修改crashkernel=auto
GRUB_CMDLINE_LINUX="crashkernel=128M rd.lvm.lv=centos/root rd.lvm.lv=centos/swap rhgb quiet"
~]# grub2-mkconfig -o /boot/grub2/grub.cfg
~]# reboot
  • auto - 根据系统中的总内存量自动配置保留内存(配置之后未知错误,暂不配!!!)
  • 128M - 保留128 MB内存
  • 512M-2G:64M,2G-:128M - 如果系统内存总量为512MB或者更高且低于2GB,则保留64MB内存,如果内存总量超过2GB,则保留128MB
  • 128M@16M - 保留从16MB(物理内存0x01000000)开始的128MB内存。如果offset参数设置为0或完全省略,则会自动偏移保留的内存,如上所述,当设置可变存储器保留时,也可以使用该语法,在这种情况下,始终指定偏移量(例如512M-2G:64M,2G-:128M@16M

配置kdump类型

修改配置文件/etc/kdump.conf

核心转储到本地

path /usr/local/cores

核心转储到设备

raw /dev/sdb1

使用NFS指定核心转储

nfs pengunin.example.com:/export/cores

使用SSH指定核心转储

ssh user@address
sshkey /root/.ssh/id_rsa

配置核心收集器

core_collector makedumpfile -l --message-level 1 -d 31

配置默认操作

default reboot

启动服务

systemctl enable kdump.service
systemctl start kdump.service

测试Kdump配置

~]# systemctl is-active kdump	# 确认服务正在运行
active
~]# echo > /proc/sys/kernel/sysrq;echo c > /proc/sysrq-trigger

分析核心转储

安装崩溃分析工具

yum install crash

安装内核相应包

  1. 首先使用命令uname -r得到自己的内核版本

  2. 然后访问网站下载两个包http://debuginfo.centos.org/7/x86_64/

    • 例如,内核版本3.10.0-862.14.4.el7.x86_64就下载如下两个包
    • kernel-debuginfo-3.10.0-862.14.4.el7.x86_64.rpm
    • kernel-debuginfo-common-x86_64-3.10.0-862.14.4.el7.x86_64.rpm
  3. 注意,如果你的内核没有更新,和镜像的版本一致,直接使用光盘镜像的包即可

  4. 开始安装

    yum localinstall kernel-debuginfo-*

运行崩溃实用程序

crash /usr/lib/debug/lib/modules/3.10.0-862.14.4.el7.x86_64/vmlinux /var/crash/127.0.0.1-2018-11-15-23\:46\:16/vmcore

查看信息

显示消息缓冲区

crash> log
# help log 有更多的信息

显示内核堆栈跟踪

crash> bt
# help bt 有更多的信息

显示进程状态

crash> ps
# help ps 有更多的信息

显示虚拟内存

crash> vm
# help crash 有更多的信息

显示打开的文件

crash> files
# help files 有更多的信息

退出实用程序

quit
上一篇:Headless Chrome:服务端渲染JS站点的一个方案【上篇】【翻译】


下一篇:SpringMyBatis解析1-使用示例