Linux系统内核崩溃如何排查?
更新日期:2015-03-07 00:54 作者:w8系统下载 来源:w8xitong.com
Linux内核如果奔溃,将导致Linux系统kernel崩溃,自己的电脑还好,如果是公司的电脑将造成不小的损失,下面小编就给大家介绍下Linux系统内核崩溃的排查方法,一起来了解下吧。
1.概述
某年某月某日某项目的线上分布式文件系统服务器多台linux系统kernel崩溃,严重影响了某项目对外提供服务的能力,在公司造成了不小影响。通过排查线上问题基本确定了是由于linux内核panic造成的原因,通过两个阶段的问题排查,基本上确定了linux内核panic的原因。排查问题的主要手段就是网上查找资料和根据内核错误日志分析并且构造条件重现。本文档就是对自己在整个问题排查过程中的总结。
2.第一阶段
因为刚出现问题的时候大家都比较紧急,每天加班都很晚,也制定了很多问题重现和定位原因的计划。我第一阶段连续坚持了两周分析问题原因,由于第一阶段自己所做的功能基本上全部形成了详细的分析文档,所以下面主要总结一下自己在第一阶段都采取了一些什么样的措施以及到达了什么效果。
第一阶段自己也分了几步走,当然最先想到的是重现线上的现象,所以我首先查看了线上的内核错误日志,根据日志显示主要是qmgr和master两个进程导致的内核panic(至少日志信息是这么提示的)。当然还结合当时服务器的现象,load比较高,对外不能提供服务。所以自己首先想到的就是通过写程序模拟不断发送邮件(因为qmgr和master进程都与发送邮件相关的进程),当程序运行起来的时候,自己小小的激动了一下,就是load上去了,服务器的对外服务能力变慢了(ssh登录),当时的线上接近线上现象,但是后面内核一直没有panic,哪怕频率在快,而且内核也没有什么错误信息。后面渐渐的就排除了这个原因。
因为出错的服务器都安装了分布式文件系统,大家就怀疑是由于分布式文件系统导致了内核panic,但是通过观察业务监控信息发现那个时段分布式文件系统没有什么特殊的信息,而且数据流也不是很大。不过我还是使用几台虚拟机安装了分布式文件系统,并且写了一个java程序并且不断的通过分布式文件系统客户端写入文件到分布式文件系统集群,同时也把邮件发送程序启动,尽量模拟线上的环境,跑了很多次很长时间也没有出现线上的现象,所以也没有什么更好的手段去重现线上的现象了。
由于重现现象失败了,所以只有根据内核的错误信息直接去分析原因了。分析步骤很简单,首先找到出错的错误代码,然后分析上下文相关的代码,分析的详细过程在去年的文档也体现出来了。
根据代码的分析和网上类似的bug基本上定位就是计算cpu调度的时间溢出,导致watchdog进程抛出panic错误,内核就挂起了。根据分析定位的原因,我又通过修改内核代码去构造时间溢出的条件,就是通过内核模块去修改系统调用时间的计数值,修改是成功了,可惜内核也直接死掉了。所以直接修改内核代码来重现也失败了。
后面也陆续咨询了很多公司外面熟悉内核的技术人员,他们根据我们提供的信息业给出了自己的分析,但是也没有很好的重现方法和确切的定位错误原因,而且不同的人给出的结论差异也比较大。
所以第一个阶段连续坚持跟踪这个问题2-3周的时间也没有一个确切的结果。
3.第二阶段
新的一年开始了,第一天又开始准备跟踪这个问题了。一开始也制定了简单的计划,我对自己的计划就是每天5-8点分析定位内核问题,当然也顺便学习内核相关知识。
这一次一开始自己便换了一个角度去思考问题,去年是基于单台服务器去分析内核日志错误信息,已经没有什么好的方式了。所以准备同时分析所有出错服务器的日志(幸好以前找运维要了所有出错服务器的内核日志并且保存下来了,不然怎么死的都不知道),找出他们的共同点。首先他们的共同点就是出现了trace子系统打印的警告信息“Delta way too big!…。。”的信息,但是根据相关信息,这个是不会导致linux系统挂起的。而且确实我们线上的服务器并不是全部都ssh不上去,不过还是在RedHat官方网站找到类似的bug(url:
系统推荐
电脑公司 Ghost W8.1 X64 极速体验版 V2015.07
电脑公司Ghost Win8.1 X64位 推荐装机版v2017.06(绝对激活)
- 深度技术Ghost Win8.1 x64 增强装机版2017V06(无需激活) 05-21
- 番茄花园 Ghost W8.1 X64 正式装机版 2016.02 01-30
- 新萝卜家园Ghost Win8.1 X64 绿色装机版2017v08(永久激活) 07-22
- 中关村 GHOST_W8.1_32位 快速装机版 v2014.12 11-26
- 番茄花园Whost W8.1 32位 装机版 2016.08(自动激活) 07-28
- 电脑公司 GHOST W8.1 64位 装机特别版 2015.02 01-30
- 电脑公司Ghost Win8.1 64位 快速装机版v2018.09月(绝对激活) 08-27
- 新萝卜家园Ghost Win8.1 x64位 家庭装机版v201806(激活版) 05-26
- 系统之家Ghost Win8.1 (32位) 收藏装机版V2017.12月(免激活) 11-30
- 番茄花园Ghost Win8.1x86 电脑城装机版v2021.06月(自动激活) 05-11
- 新萝卜家园Ghost Win8.1 X64 多驱动装机版V2020年04月(自动激活) 03-18
- 电脑公司Ghost Win8.1 X64位 极速通用版v201705(免激活) 05-10
- 系统之家Ghost Win8.1 64位 经典装机版2018V05(完美激活) 04-30
- 番茄花园Ghost W8.1 32位 增强装机版 2015.12 11-27
- 深度技术Ghost Win8.1 (X32) 装机装机版V201806(完美激活) 05-26
- 1 系统之家Ghost Win8.1 x64 推荐装机版2020年06月(无需激活)
- 2 番茄花园Ghost Win8.1x86 完美装机版v202101(绝对激活)
- 3 番茄花园Win8.1 大神2021新年春节版64位
- 4 深度技术Win8.1 完整装机版 2019.11(32位)
- 5 雨林木风 Ghost W8.1 64位 装机版 2016.07
- 6 电脑公司Ghost Win8.1 X64 稳定装机版v2017.07月(无需激活)
- 7 Ghost W8.1 32位 装机版 2016.06
- 8 新萝卜家园Ghost Win8.1 x64位 快速装机版V2019年08月(无需激活)
- 9 中关村 GHOST W8.1 X64 安全装机版 2015.06
- 10 大地系统 Ghost W8.1 32位 装机版 2016.05标准
- 1 电脑公司Ghost W8.1 x32 纯净版(免激活)2016.01
- 2 电脑公司Ghost Win8.1x86 完美纯净版V201912(无需激活)
- 3 深度技术Ghost Win8.1 X32 纯净版V2017年04月(绝对激活)
- 4 番茄花园官网Ghost W8.132位 万能纯净版 2016.07
- 5 电脑公司Ghost Win8.1 64位 经典纯净版v2021.01月(完美激活)
- 6 电脑公司Ghost Win8.1 X64位 办公纯净版V201710(无需激活)
- 7 新萝卜家园Window8.1 32位 尝鲜纯净版 v2020.04
- 8 新萝卜家园Ghost Win8.1 x64位 精选纯净版v201808(绝对激活)
- 9 雨林木风Win8.1 Ghost 64位 老机纯净版 v2020.02
- 10 电脑公司Ghost Win8.1x86 好用纯净版2021.08(绝对激活)
- 1 宏碁(acer)Ghost W8.1 32位 专用系统 V2016
- 2 联想笔记本 Ghost W8.1 32位 装机版 2016.06
- 3 华硕 GHOST W8.1 64位 极速装机版 2015.09
- 4 【2014.09】惠普专用(32位)GhostW8.1x86专业快速装机版系统
- 5 (asus华硕)GHOST W8.1 64位 特别版 2016
- 6 (dell戴尔)GHOST W8.1 64位 修正版 2016
- 7 联想笔记本 GHOST W8.1 64位 免激活专业版 2014.12
- 8 东芝笔记本 Ghost W8.1 64位 装机版 2016.05
- 9 宏碁笔记本 Ghost W8.1 32位 装机版 2016.05
- 10 (toshiba东芝)GHOST W8.1 64位 旗舰版 2016