背景

在Linux系统环境下,服务器宕机发生的频率比较小,但是不少工程师或多或少都会遇到这种情况,有时候会手足无措,不知从何入手。笔者将借助一次案例分析,展示下Linux宕机故障事件的处理方法和思路。

宕机发生的原因不一,或者是硬件原因,或者是性能原因,或者是服务器触发了Linux的bug,导致内核崩溃等等。

案例分析

1、 案情还原;

生产系统服务器dcspodsaa1在4月25日凌晨00:49分发生服务器宕机故障,当时系统管理员对硬件报错进行了截图(保留现场很重要),看字面意思应该是服务器的swap设备发生损坏:

2、 分析方法一:使用sosreport收集系统日志,检查/var/log/messages日志,查找系统重启前是否存在错误日志,图中kernel***/proc/kmsg started代表系统启动的第一条日志,在此之前没有发现异常日志,

3、 分析方法二:检查服务器开启了kdump服务,并在/var/crash目录找到了当天生成的vmcore文件,使用crash工具分析vmcore文件,如下:

服务器发生了严重的系统崩溃panic错误

对kdmp文件的错误日志进行分析,发现了大量的swap 设备读写错误:

4、    根据报错” Kernel panic –not syncing:Attempted to kill init”,查询到红帽官网KB:https://access.redhat.com/solutions/1450043,得到此次宕机事件的原因是系统 swap设备I/O读写失败,触发系统kill掉主进程“init”,系统发生内核崩溃,而关于系统swap分区读写错误产生的深层原因,涉及到Redhat底层内核的程序,建议开启红帽的官方case进行深度的分析处理   。

5、  分析方法三:检查系统历史性能记录,/var/log/sa/路径下记录了每天由sysstat服务收集的sar(system activity report)文件,默认每10分钟记录一次系统资源使用情况的信息,包括CPU、内存等。通过sar命令查看系统宕机时负载情况,没有发现资源使用异常,基本可以排除不是系统因性能不足从而导致宕机

4.25号性能记录文件

使用命令sar –A –F sa25 | more检查CPU性能信息和内存性能信息,没有发现异常情况。

其他配置

开启kdump:

安装依赖包

启动服务

设置开启启动

修改默认crashkernel参数为256M, 注意需重启系统才生效

使用crash工具分析vmcore文件:

1)  安装crash包,可使用yum安装

2)  安装kernel-debug内核版本,该rpm包必需和故障系统的内核版本一致

先使用unamre –r查看故障机版本

安装相应包

3)  启动crash检查

小结

因此,在处理故障时,一般的思路是:

1. 首先应查找故障前的错误日志线索,可以通过检查系统messages日志中的错误日志;

2. 如果没有,进而排查系统是否触发kdump服务(在系统由于内核崩溃而导致宕机时,可以捕获故障时内存中的故障信息);

3. 另外也需要分析系统资源(CPU、内存等)使用上出现异常。

linux宕机故障分析案例,[文章]Linux宕机故障分析案例相关推荐

  1. linux练习 串口跟进程6,linux下串口测试程序

    linux下串口测试程序 通过简单的参数配置,执行文件+串口号+波特率 #include stdio.h #include stdlib.h #include unistd.h #include sy ...

  2. Linux内存耗尽宕机6,转载:Linux服务器Cache占用过多内存导致系统内存不足最终java应用程序崩溃解决方案...

    原文链接: https://blog.csdn.net/u014740338/article/details/66975550 问题描述 Linux内存使用量超过阈值,使得Java应用程序无可用内存, ...

  3. CentOS Linux SELinux 安全上下文错误引起的宕机故障

    (首发:学习日记 CentOS Linux SELinux 安全上下文错误引起的宕机故障 – 学习日记 ) 在某些情况下,我们会用一些外部的文件复制替换系统中原有的文件,如文件损坏,或者安装了错误版本 ...

  4. linux内存不足宕机,记一次linux机器内存占用太多导致的服务宕机

    背景 最近我们测试环境部署的一个项目总是不停的宕机,之前也有过,但是最近特别频繁 猜测 可能是因为cup或者内存占用太大导致的服务宕机 执行 1.登录linux服务器 2.top命令 下面是对每一行信 ...

  5. 零基础到精通Linux,从这篇文章开始

    2018年想做Linux运维的人应该如何学习才能快速精通Linux? Linux入门这么简单,为什么很多人学不会? 想要成为一个合格的运维工程师,到底怎么才能从零开始精通Linux? 作为一个运维小白 ...

  6. oracle anonhugepage,案例:Oracle linux redhat检查Transparent HugePages状态并关闭

    天萃荷净 ALERT: Disable Transparent HugePages on SLES11, RHEL6, OEL6 and UEK2 Kernels 随着去ioe的潮流越来越汹涌,随着内 ...

  7. BSP板机支持包、linux启动分析、ARM裸机编程

    文章目录 一.BSP 二.驱动 驱动的基本要素 三.启动分析 1.uboot 2.uboot的作用 3.uboot相关命令 关键的内容: 1)bootargs,启动参数 2)启动命令 3)修改启动延时 ...

  8. Java内存溢出故障案例及Linux内存机制探究

    文章目录 Java内存溢出故障案例及Linux内存机制探究 OOM Killer触发机制分析 如何避免系统触发OOM Killer 这部分内容属于demo案例分享,解决线上运维问题,思路是最重要的 J ...

  9. su user oracle does not exist,【案例】Linux文件系统无法mount 由superblock损坏导致

    [案例]Linux文件系统无法mount 由superblock损坏导致 时间:2016-12-19 10:33   来源:Oracle研究中心   作者:网络   点击: 次 天萃荷净 Oracle ...

  10. linux share目录 多个机器访问,如何在linux下网上邻居访问另一台机windows共享的目录?(急)...

    已经装好 samba-client 不知怎么用,请帮忙! | 随着Linux的普及,如何共享Linux下的文件成为用户关心的问题.其实,几乎所有的Linux发行套件都提供了一个很好的工具Samba-- ...

最新文章

  1. 支付宝回调接口验签失败
  2. Java线程之CompletionService批处理任务
  3. AFNetWork 学习资源....
  4. 微软.NET程序员必上的网站
  5. Oracle PL/SQL编程之变量
  6. 增大表名最大长度_全球最大室内滑雪场结构技术解密!
  7. 大一计算机基础重点知识,2015-大一计算机基础知识点归纳.doc
  8. java调用系统对话框,[求助]Swing如何调用通用对话框
  9. python 空白行_python去掉空白行的多种实现代码
  10. 乡土中国思维导图精华版
  11. 微信网页扫码登录的实现
  12. 腾讯走上王者之位,你以为靠的只是抄袭?
  13. 联发科MTK(3G,4G,5G)核心板/芯片简介
  14. Informix SQL-Tracing
  15. 网易易盾js逆向分析
  16. python报错:SyntaxError: Missing parentheses in call to ‘exec‘
  17. 《C语言入门》猜数字小游戏代码实现
  18. Android微信开发者平台更换包签名后,微信登录提示签名不对
  19. C++ UML类图关系
  20. Matplotlib绘制折线图和散点图

热门文章

  1. JavaCC详解 绝对干货
  2. Widedeep模型详解
  3. /deep/的使用与导致样式失效问题处理
  4. Sql Server 中事务(begin tran/commit tran/rollback tran)的用法
  5. 什么是知识库,怎么制作知识库?
  6. 用户态创建socket来控制arp报文的收发,含编码
  7. unity引擎发展史
  8. 操作系统基础概念大扫盲 - 操作系统系列(一)(持续更新,争取完整)
  9. MOTO ME525/Defy 刷Android4.0 刷机教程
  10. 线性规划,大M法,两阶段法