CN107832166A - 一种Linux服务器宕机故障分析系统及方法 - Google Patents

一种Linux服务器宕机故障分析系统及方法 Download PDF

Info

Publication number
CN107832166A
CN107832166A CN201711206093.3A CN201711206093A CN107832166A CN 107832166 A CN107832166 A CN 107832166A CN 201711206093 A CN201711206093 A CN 201711206093A CN 107832166 A CN107832166 A CN 107832166A
Authority
CN
China
Prior art keywords
server
processor
code
analysis
linux
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201711206093.3A
Other languages
English (en)
Inventor
范冬冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201711206093.3A priority Critical patent/CN107832166A/zh
Publication of CN107832166A publication Critical patent/CN107832166A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0778Dumping, i.e. gathering error/state information after a fault for later diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明特别涉及一种Linux服务器宕机故障分析系统及方法,包括故障服务器和分析服务器,所述故障服务器和分析服务器主板上均集成处理器调试接口,并分别通过处理器调试接口连接到处理器调试器。该Linux服务器宕机故障分析系统及方法,通过处理器调试器获取故障服务器处理器核执行程序地址,并利用addr2line工具对程序地址进行解析,结合Linux源代码定位故障原因,操作简单,快速高效,同时规避了部署kdump带来的系统可用内存减少的弊端。

Description

一种Linux服务器宕机故障分析系统及方法
技术领域
本发明涉及服务器故障分析技术领域,特别涉及一种Linux服务器宕机故障分析系统及方法。
背景技术
Linux服务器操作系统上一般运行着非常关键的业务应用,系统的可靠性非常重要。但随着系统硬件资源规模的不断扩展,系统业务应用复杂程度的不断提高,系统出现不稳定的几率也随之不断上升。
在Linux操作系统运行过程中由于不确定的因素(如硬件故障或系统软件逻辑错误)会导致系统产生异常:对于应用程序出现的问题可能会导致应用进程终止,影响业务运行;对于操作系统内核出现的问题,常常会打印错误信息到内核日志中,严重的内核问题(例如在禁止CPU的所有中断超过一定时间(几秒)时,外部设备发生的中断无法处理,此时认为内核发生hard lockup)会导致操作系统无法提供正常服务。在上述情况下操作系统内核会触发应急panic,即机器彻底被锁定,不能使用,即宕机。如果在终端下,可以看到内核转储dump出来的信息,即内核发生应急panic时的函数调用链以及寄存器、堆栈信息等,这些信息是排查宕机原因的最重要的数据。但对于批量部署在机房中的服务器很少通过终端捕捉到这些信息,服务器重启后这些信息就会丢失,为后续定位宕机原因增加了难度。
针对于宕机后系统关键信息无法保存的问题,当前发行版的Linux操作系统常用的解决办法是部署kdump服务。kdump是一种基于kexec的Linux内核崩溃捕获机制,将kernel崩溃前的内存镜像保存,程序员通过分析该文件找出kernel崩溃的原因,从而进行系统改进,即在系统崩溃、死锁或者死机的时候用来转储内存运行参数的一个工具和服务。当系统崩溃时,正常的内核就没有办法工作了,此时将由kdump产生一个用于捕获当前运行信息的内核,该内核会将此时内存中的所有运行状态和数据信息收集到一个dump core文件中,以便于工程师分析崩溃原因,一旦内存信息收集完成,系统将自动重启。kdump服务处理流程如附图2所示。
但是,实施该技术的前提条件是在操作系统在启动时必须配置kdump服务才能在系统宕机时收集系统关键信息。而配置kdump需要隔离出一部物物理内存预留给捕获内核使用,系统可用内存将会减少,因此部分服务器用户并不会部署kdump服务,当宕机发生时工程师很难定位故障根源。
基于此,本发明设计了一种Linux服务器宕机故障分析系统及方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的Linux服务器宕机故障分析系统及方法。
本发明是通过如下技术方案实现的:
一种Linux服务器宕机故障分析系统,其特征在于:包括故障服务器和分析服务器,所述故障服务器和分析服务器主板上均集成处理器调试接口,并分别通过处理器调试接口连接到处理器调试器。
本发明Linux服务器宕机故障分析系统的分析方法,其特征在于,包括以下步骤:
(1)故障服务器宕机后,将处理器调试器连接到故障服务器主板集成处理器调试接口,通过处理器调试器读出故障服务器上处理器每个内核当前程序指针寄存器中的内容;
(2)分析服务器将故障服务器上同版本的操作系统内核源码解压安装到制定目录下,并进行编译生成vmlinux文件;
(3)分析服务器根据处理器调试器读出的故障服务器上处理器每个内核当前程序指针寄存器中的内容和编译生成的vmlinux文件定位出每个内核所在的执行的代码源码行号;
(4)对照Linux内核源码分析每个内核执行代码的上下文场景,对故障原因进行排查定位即可。
所述步骤(1)中,通过处理器调试器读出故障服务器上处理器核正在执行的代码的地址,读出的代码地址为addr x;所述步骤(3)中分析服务器根据读出的代码地址addr x和编译生成的vmlinux文件定位出每个核所在的执行的代码源码行号。
所述步骤(3)中利用addr2line工具定位出每个核所在的执行的代码源码行号。
当故障服务器为单核服务器时,代码地址addr x中x为1;当故障服务器为多核服务器时,总内核数为n,各内核分别命名为addr1,addr2,…,addr n,代码地址addr x中x为不大于n的自然数。
本发明的有益效果:该Linux服务器宕机故障分析系统及方法,通过处理器调试器获取故障服务器处理器核执行程序地址,并利用addr2line工具对程序地址进行解析,结合Linux源代码定位故障原因,操作简单,快速高效,同时规避了部署kdump带来的系统可用内存减少的弊端。
附图说明
附图1为本发明Linux服务器宕机故障分析系统示意图。
附图2为现有技术中kdump服务处理流程示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图和实施例,对本发明进行详细的说明。
该Linux服务器宕机故障分析系统及方法,包括故障服务器和分析服务器,所述故障服务器和分析服务器主板上均集成处理器调试接口,并分别通过处理器调试接口连接到处理器调试器。
该Linux服务器宕机故障分析系统的分析方法,包括以下步骤:
(1)故障服务器宕机后,将处理器调试器连接到故障服务器主板集成处理器调试接口,通过处理器调试器读出故障服务器上处理器每个内核当前程序指针寄存器中的内容;
(2)分析服务器将故障服务器上同版本的操作系统内核源码解压安装到制定目录下,并进行编译生成vmlinux文件;
(3)分析服务器根据处理器调试器读出的故障服务器上处理器每个内核当前程序指针寄存器中的内容和编译生成的vmlinux文件定位出每个内核所在的执行的代码源码行号;
(4)对照Linux内核源码分析每个内核执行代码的上下文场景,对故障原因进行排查定位即可。
所述步骤(1)中,通过处理器调试器读出故障服务器上处理器核正在执行的代码的地址,读出的代码地址为addr x;所述步骤(3)中分析服务器根据读出的代码地址addr x和编译生成的vmlinux文件定位出每个核所在的执行的代码源码行号。
所述步骤(3)中利用addr2line工具定位出每个核所在的执行的代码源码行号。
addr2line工具使用方法如下:
addr2line -e vmlinux addrx
当故障服务器为单核服务器时,代码地址addr x中x为1;当故障服务器为多核服务器时,总内核数为n,各内核分别命名为addr1,addr2,…,addr n,代码地址addr x中x为不大于n的自然数。
下面以故障服务器为四核服务器或八核服务器为例进行说明,应当说明的是,此处所描述的四核服务器或八核服务器仅用以解释本发明,并不用于限定本发明。故障服务器可以是现有技术中的任意内核数的多核服务器。
当故障服务器有4个内核时,则各内核分别命名为addr1,addr2,addr3,addr4,读出的代码地址可能为addr1,addr2,addr3或addr4中的任意一个。
当故障服务器有8个内核时,则各内核分别命名为addr1,addr2,…,addr8,读出的代码地址可能为addr1,addr2,…..或addr8中的任意一个。

Claims (5)

1.一种Linux服务器宕机故障分析系统,其特征在于:包括故障服务器和分析服务器,所述故障服务器和分析服务器主板上均集成处理器调试接口,并分别通过处理器调试接口连接到处理器调试器。
2.根据权利要求1所述的Linux服务器宕机故障分析系统的分析方法,其特征在于,包括以下步骤:
(1)故障服务器宕机后,将处理器调试器连接到故障服务器主板集成处理器调试接口,通过处理器调试器读出故障服务器上处理器每个内核当前程序指针寄存器中的内容;
(2)分析服务器将故障服务器上同版本的操作系统内核源码解压安装到制定目录下,并进行编译生成vmlinux文件;
(3)分析服务器根据处理器调试器读出的故障服务器上处理器每个内核当前程序指针寄存器中的内容和编译生成的vmlinux文件定位出每个内核所在的执行的代码源码行号;
(4)对照Linux内核源码分析每个内核执行代码的上下文场景,对故障原因进行排查定位即可。
3.根据权利要求2所述的Linux服务器宕机故障分析系统的分析方法,其特征在于:所述步骤(1)中,通过处理器调试器读出故障服务器上处理器核正在执行的代码的地址,读出的代码地址为addr x;所述步骤(3)中分析服务器根据读出的代码地址addr x和编译生成的vmlinux文件定位出每个核所在的执行的代码源码行号。
4.根据权利要求2或3所述的Linux服务器宕机故障分析系统的分析方法,其特征在于:所述步骤(3)中利用addr2line工具定位出每个核所在的执行的代码源码行号。
5.根据权利要求3所述的Linux服务器宕机故障分析系统的分析方法,其特征在于:当故障服务器为单核服务器时,代码地址addr x中x为1;当故障服务器为多核服务器时,总内核数为n,各内核分别命名为addr1,addr2,…,addr n,代码地址addr x中x为不大于n的自然数。
CN201711206093.3A 2017-11-27 2017-11-27 一种Linux服务器宕机故障分析系统及方法 Pending CN107832166A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711206093.3A CN107832166A (zh) 2017-11-27 2017-11-27 一种Linux服务器宕机故障分析系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711206093.3A CN107832166A (zh) 2017-11-27 2017-11-27 一种Linux服务器宕机故障分析系统及方法

Publications (1)

Publication Number Publication Date
CN107832166A true CN107832166A (zh) 2018-03-23

Family

ID=61645861

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711206093.3A Pending CN107832166A (zh) 2017-11-27 2017-11-27 一种Linux服务器宕机故障分析系统及方法

Country Status (1)

Country Link
CN (1) CN107832166A (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062627A (zh) * 2018-07-12 2018-12-21 郑州云海信息技术有限公司 一种Linux服务器系统kdump服务的配置方法
CN109062758A (zh) * 2018-07-19 2018-12-21 郑州云海信息技术有限公司 一种服务器系统宕机处理方法、系统、介质及设备
CN111158945A (zh) * 2019-12-31 2020-05-15 奇安信科技集团股份有限公司 内核故障处理方法、装置、网络安全设备和可读存储介质
CN112825057A (zh) * 2019-11-20 2021-05-21 广州凡科互联网科技股份有限公司 一种可快速定位错误代码、监控ajax请求服务异常的监控方法
CN114706708A (zh) * 2022-05-24 2022-07-05 北京拓林思软件有限公司 一种用于Linux操作系统的故障分析方法及系统
CN117370214A (zh) * 2023-12-01 2024-01-09 珠海格力电器股份有限公司 一种控制器的程序调试方法、装置和存储介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1115443A (zh) * 1994-01-20 1996-01-24 阿尔卡塔尔澳大利亚有限公司 微处理机故障记录
CN102567196A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 一种处理器仿真调试方法及装置
CN103106132A (zh) * 2013-03-05 2013-05-15 中标软件有限公司 Linux系统崩溃时内核函数调用栈分析调试方法
CN103701874A (zh) * 2013-12-11 2014-04-02 深圳市东微智能科技有限公司 一种arm核心板与平板的远程通信方法及系统
CN104298575A (zh) * 2013-07-16 2015-01-21 鸿富锦精密电子(天津)有限公司 主板调试电路
CN105141443A (zh) * 2015-07-23 2015-12-09 浪潮(北京)电子信息产业有限公司 服务器测试系统和接口配置方法
CN105426293A (zh) * 2015-10-29 2016-03-23 汉柏科技有限公司 记录内核异常栈及vmcore文件的方法及系统
CN106294147A (zh) * 2016-08-09 2017-01-04 上海盈方微电子有限公司 一种linux操作系统的调试方法
CN107273291A (zh) * 2017-06-14 2017-10-20 湖南国科微电子股份有限公司 一种处理器调试方法及系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1115443A (zh) * 1994-01-20 1996-01-24 阿尔卡塔尔澳大利亚有限公司 微处理机故障记录
CN102567196A (zh) * 2010-12-27 2012-07-11 北京国睿中数科技股份有限公司 一种处理器仿真调试方法及装置
CN103106132A (zh) * 2013-03-05 2013-05-15 中标软件有限公司 Linux系统崩溃时内核函数调用栈分析调试方法
CN104298575A (zh) * 2013-07-16 2015-01-21 鸿富锦精密电子(天津)有限公司 主板调试电路
CN103701874A (zh) * 2013-12-11 2014-04-02 深圳市东微智能科技有限公司 一种arm核心板与平板的远程通信方法及系统
CN105141443A (zh) * 2015-07-23 2015-12-09 浪潮(北京)电子信息产业有限公司 服务器测试系统和接口配置方法
CN105426293A (zh) * 2015-10-29 2016-03-23 汉柏科技有限公司 记录内核异常栈及vmcore文件的方法及系统
CN106294147A (zh) * 2016-08-09 2017-01-04 上海盈方微电子有限公司 一种linux操作系统的调试方法
CN107273291A (zh) * 2017-06-14 2017-10-20 湖南国科微电子股份有限公司 一种处理器调试方法及系统

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109062627A (zh) * 2018-07-12 2018-12-21 郑州云海信息技术有限公司 一种Linux服务器系统kdump服务的配置方法
CN109062758A (zh) * 2018-07-19 2018-12-21 郑州云海信息技术有限公司 一种服务器系统宕机处理方法、系统、介质及设备
CN112825057A (zh) * 2019-11-20 2021-05-21 广州凡科互联网科技股份有限公司 一种可快速定位错误代码、监控ajax请求服务异常的监控方法
CN111158945A (zh) * 2019-12-31 2020-05-15 奇安信科技集团股份有限公司 内核故障处理方法、装置、网络安全设备和可读存储介质
CN111158945B (zh) * 2019-12-31 2023-12-22 奇安信科技集团股份有限公司 内核故障处理方法、装置、网络安全设备和可读存储介质
CN114706708A (zh) * 2022-05-24 2022-07-05 北京拓林思软件有限公司 一种用于Linux操作系统的故障分析方法及系统
CN117370214A (zh) * 2023-12-01 2024-01-09 珠海格力电器股份有限公司 一种控制器的程序调试方法、装置和存储介质
CN117370214B (zh) * 2023-12-01 2024-04-19 珠海格力电器股份有限公司 一种控制器的程序调试方法、装置和存储介质

Similar Documents

Publication Publication Date Title
CN107832166A (zh) 一种Linux服务器宕机故障分析系统及方法
JP6333410B2 (ja) 障害処理方法、関連装置、およびコンピュータ
Sullivan et al. Software defects and their impact on system availability-a study of field failures in operating systems
US7962798B2 (en) Methods, systems and media for software self-healing
US10037238B2 (en) System and method for encoding exception conditions included at a remediation database
US20070033586A1 (en) Method for blocking the installation of a patch
JPH113294A (ja) Pciバス・エラーの障害を分離する方法およびシステム
CN109144873B (zh) 一种linux内核处理方法及装置
CN112527484B (zh) 工作流断点续跑方法、装置、计算机设备及可读存储介质
CN110062926B (zh) 设备驱动器遥测
WO2019074687A1 (en) METHOD FOR COPYING PRODUCTION BEHAVIORS IN A DEVELOPMENT ENVIRONMENT
CN109710479B (zh) 一种处理方法及第一设备、第二设备
US7246276B2 (en) Error tolerant modular testing of services
Feng et al. Understanding and defending the binder attack surface in android
CN115373997A (zh) 一种多核SoC的板卡固件异常监测及核心数据导出方法
US20190121985A1 (en) Detecting vulnerabilities in applications during execution
CN106909382B (zh) 输出不同类型系统启动信息的方法及装置
CN116501564B (zh) 一种芯片验证方法、现场可编程逻辑门阵列芯片以及装置
CN109885420B (zh) 一种PCIe链路故障的分析方法、BMC及存储介质
CN114003416B (zh) 内存错误动态处理方法、系统、终端及存储介质
WO2023009062A1 (en) Device and method for re-executing of test cases in software application
CN112698850B (zh) 一种优化的升级方法和相关设备
CN114217925A (zh) 一种实现异常自动重启的业务程序运行监控方法及系统
CN111475400A (zh) 一种业务平台的验证方法及相关设备
JP2002182951A (ja) 情報処理装置のメンテナンス方法および情報処理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication

Application publication date: 20180323

RJ01 Rejection of invention patent application after publication