使用crash查看Linux系统异常重启原因

您所在的位置:网站首页 vivo怎么看重启记录 使用crash查看Linux系统异常重启原因

使用crash查看Linux系统异常重启原因

2024-07-08 04:52| 来源: 网络整理| 查看: 265

最近有一台物理机间歇性的发生重启, 本以为是偶发事件就没多在意,今天又给重启了, 因此决定探探究竟

首先看一下kdump服务是否开启, kdump主要用于内核发生crash时记录相关上下文的. 用来转储运行内存的一个工具

简言之: 系统一旦崩溃,内核就没法正常工作了,这个时候将由kdump提供一个用于捕获当前运行信息的内核,

该内核会将此时内存中的所有运行状态和数据信息收集到一个dump core文件中以便之后分析崩溃原因

之后系统便会重启.

关于kdump在内核已经崩溃的前提下还能够捕获到异常信息, 原理可参考

这里引用一张图

要分析core文件,可以使用crash工具,首先是安装:

注意, 要安装与当前内核对应的版本, 要不然crash无法使用.

1234567wget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-common-x86_64-3.10.0-693.el7.x86_64.rpmwget http://debuginfo.centos.org/7/x86_64/kernel-debuginfo-3.10.0-693.el7.x86_64.rpmrpm -ivh kernel-debuginfo-common-x86_64-3.10.0-693.el7.x86_64.rpmrpm -ivh kernel-debuginfo-3.10.0-693.el7.x86_64.rpmyum install crash

通常, 内核crash后保存的core文件保存在/var/crash目录下,在该目录下找到最近一次crash的时间,使用以下命令启动crash分析dump.

1crash vmcore /usr/lib/debug/lib/modules/3.10.0-693.el7.x86_64/vmlinux

启动之后就进入到了crash命令行,很明显地显示出crash的原因,如下图红框所示:

这里简要地反应出内核crash时的一些内存信息快照,包含一些物理信息, tasks数量,最重要的就是导致crash的command与panic的原因

这里可直接使用ps查看进程的相关信息,跟linux 命令行下的ps功能相似

还可以使用bt命令来查看trace信息, 当然都是一些汇编层的内容,需要有一定的专业知识,理解起来比较困难.

从上面已经知道了panic的原因后就可对症下药.

另外crash支持很多的子命令,大家可使用man crash查看,比较常用的为

12345crash ps # 查看进程crash sys # 查看系统信息crash bt # 查看堆栈信息crash files # 查看异常时进程打开的文件crash task # 查看指定task的信息 参考文章: https://www.linuxtechi.com/how-to-enable-kdump-on-rhel-7-and-centos-7/ https://www.cnblogs.com/doctormo/p/12619485.html https://blog.csdn.net/zhangskd/article/details/38084337 转载请注明原作者: 周淑科(https://izsk.me)


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3