掌桥专利:专业的专利平台
掌桥专利
首页

一种服务器故障检测方法、装置、计算机设备及存储介质

文献发布时间:2023-06-19 13:49:36


一种服务器故障检测方法、装置、计算机设备及存储介质

技术领域

本发明涉及服务器技术领域,尤其涉及一种服务器故障检测方法、装置、计算机设备及存储介质。

背景技术

服务器是一种运行快,负载高,性能强的计算机,长时间运行是服务器的一个重要性能指标,监测服务器的运行状态是保证服务器长期可靠运行的一个重要方法,一旦服务器发生故障无法正常运行,需要借助服务器远端控制器(如基板管理控制器,BaseboardManagement Controller,简称BMC)对服务器进行复位等操作。

目前,传统服务器的故障监控较为常用的方式是对监控参数设置预警值,如果监控到服务器某一运行参数超过所设定的预警值,则表示服务器出现故障,或者对服务器的运行数据进行统计分析以得到运行状态评估结果;然而,现有的服务器监测方式存在以下缺点:第一,无法准确的确定故障的类型,只能判断是否发生故障,无法定位故障的类型或者定位故障的器件和原因,给服务器的故障修复和维护待来极大不便;第二,容错率较低,对于有些运行数据缺失的情形或者短时间的异常,此方式存在误判或者无法确定是否有故障。第三,数据处理量大、耗时较长,增加了故障监控的成本。因此,传统的服务器故障监控方式亟需改进。

发明内容

有鉴于此,有必要针对以上技术问题,提供一种服务器故障检测方法、装置、计算机设备及存储介质。

根据本发明的第一方面,提供了一种服务器故障检测方法,所述方法包括:

获取服务器的当前运行数据;

对所述当前运行数据进行预处理以得到预处理后的运行数据;

将所述预处理后的运行数据输入至预先训练的预测模型,其中,所述预先训练的预测模型基于随机森林算法训练得到,且用于表征运行数据与故障类型的对应关系;

根据所述预先训练的预测模型的输出确定当前服务器是否发生故障,以及故障所属的故障类型。

在一些实施例中,所述方法还包括:

响应于当前服务器发生故障,则基于故障所属的故障类型生成报警记录;

通过Web页面展示所述报警记录。

在一些实施例中,所述方法还包括:

响应于当前服务器发生故障,则对当前故障的服务器进行监控以确认服务器是否宕机;

响应于当前故障的服务器宕机,则对当前故障的服务器进行复位操作。

在一些实施例中,所述当前运行数据包括以下至少一种:主板上至少一个部件的电压、主板上至少一个部件的电流,以及中央处理器的内存使用率。

在一些实施例中所述对所述当前运行数据进行预处理以得到预处理后的运行数据的步骤包括:

对所述当前运行数据进行归一化处理,将归一化处理后的数据作为所述预处理后的运行数据。

在一些实施例中,所述方法还包括:

利用有预先标记有故障类型标签的服务器的历史运行数据构造样本集;

配置决策树的数量,每棵决策树的深度、每个节点使用到的特征数量、迭代终止条件、每个节点上最少的样本数,每个节点上最少的信息增益。

在一些实施例中,所述预先训练的预测模型通过随机森林训练过程和随机森林测试过程得到;

所述随机森林的训练过程包括:有放回的从构造的样本集中抽取训练样本,并随机选择根节点,从根节点开始使用所述训练样本集进行训练,直到所有节点均完成训练,则得到具有所需参数的预测模型:

所述随机森林的测试过程包括:将测试样本输入到具有所需参数的预测模型中,对模型输出结果采用Gini参数进行评估,并基于Gini值调整预测模型的参数以得到所述预先训练的预测模型。

根据本发明的第二方面,提供了一种服务器故障检测装置,所述装置包括:

数据获取模块,配置用于获取服务器的当前运行数据;

预处理模块,配置用于对所述当前运行数据进行预处理以得到预处理后的运行数据;

预测模块,配置用于将所述预处理后的运行数据输入至预先训练的预测模型,其中,所述预先训练的预测模型基于随机森林算法训练得到,且用于表征运行数据与故障类型的对应关系;

故障确定模块,配置用于根据所述预先训练的预测模型的输出确定当前服务器是否发生故障,以及故障所属的故障类型。

根据本发明的第三方面,还提供了一种计算机设备,该计算机设备包括:

至少一个处理器;以及

存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的服务器故障检测方法。

根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的服务器故障检测方法。

上述一种服务器故障检测方法,通过在服务运行的过程中在线采集服务器的运行数据,然后对运行数据预处理后输入到基于随机森林算法训练得到预先训练的预测模型中,根据预先训练的预测模型的输出确定当前服务器是否发生故障,不仅实现了对服务器进行故障确定,还能够针对存在故障的情形诊断出故障类型,准确性和容错性较佳,为服务器的运行和维护提供了极大便利,提高服务器运行的稳定性。

此外,本发明还提供了一种服务器故障检测装置、一种计算机设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。

图1为本发明一个实施例提供的服务器故障检测方法100的流程示意图;

图2为本发明一个实施例提供的另一服务器故障监测方法200的流程图;

图3为本发明又一个实施例提供的服务器故障检测装置300的结构示意图;

图4本发明另一个实施例中计算机设备的内部结构图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。

需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。

在一个实施例中,请参照图1所示,本发明提供了一种服务器故障检测方法100,所述方法100包括以下步骤:

S101,获取服务器的当前运行数据。

在具体实施过程中,获取服务器的运行方式包括但不限于以下几种情况:通过服务器管理软件、传感器或者基板管理控制器获取。运行数据可以是CPU的内存占用率,运行数据还可以是主板上某个芯片或者功能模块的电压、电流等等。优选地,所述当前运行数据包括以下至少一种:主板上至少一个部件的电压、主板上至少一个部件的电流,以及中央处理器的内存使用率。

S102,对所述当前运行数据进行预处理以得到预处理后的运行数据。

S103,将所述预处理后的运行数据输入至预先训练的预测模型,其中,所述预先训练的预测模型基于随机森林算法训练得到,且用于表征运行数据与故障类型的对应关系;

S104,根据所述预先训练的预测模型的输出确定当前服务器是否发生故障,以及故障所属的故障类型。

上述一种服务器故障检测方法,通过在服务运行的过程中在线采集服务器的运行数据,然后对运行数据预处理后输入到基于随机森林算法训练得到预先训练的预测模型中,根据预先训练的预测模型的输出确定当前服务器是否发生故障,不仅实现了对服务器进行故障确定,还能够针对存在故障的情形诊断出故障类型,准确性和容错性较佳,为服务器的运行和维护提供了极大便利,提高服务器运行的稳定性。

在一些实施例中,为便于对服务器进行管理,使用者或者运维人员能够及时发现故障,所述方法还包括:

响应于当前服务器发生故障,则基于故障所属的故障类型生成报警记录;通过Web页面展示所述报警记录。

在一些实施例中,对于一些导致服务器无法自动恢复的故障问题,可以采用重新启动服务器的方式使服务器恢复正常,所述方法还包括:

响应于当前服务器发生故障,则对当前故障的服务器进行监控以确认服务器是否宕机;

响应于当前故障的服务器宕机,则对当前故障的服务器进行复位操作。

在一些实施例中,所述对所述当前运行数据进行预处理以得到预处理后的运行数据的步骤包括:

对所述当前运行数据进行归一化处理,将归一化处理后的数据作为所述预处理后的运行数据。

在一些实施例中,所述方法还包括:

利用有预先标记有故障类型标签的服务器的历史运行数据构造样本集;配置决策树的数量,每棵决策树的深度、每个节点使用到的特征数量、迭代终止条件、每个节点上最少的样本数,每个节点上最少的信息增益。

在一些实施例中,所述预先训练的预测模型通过随机森林训练过程和随机森林测试过程得到;

所述随机森林的训练过程包括:有放回的从构造的样本集中抽取训练样本,并随机选择根节点,从根节点开始使用所述训练样本集进行训练,直到所有节点均完成训练,则得到具有所需参数的预测模型:

所述随机森林的测试过程包括:将测试样本输入到具有所需参数的预测模型中,对模型输出结果采用Gini参数进行评估,并基于Gini值调整预测模型的参数以得到所述预先训练的预测模型。

在又一个实施例中,请结合图2所示,本发明提供了另一服务器故障监测方法200的流程图,具体包括以下步骤:

S201,BMC通过I2C获得服务器关键部件信息。关键部件可以是内存、中央处理器等等。

S202,对健康信息数据进行处理,数值型进行归一化处理,部分数据需要标记当前服务器状态,状态分为故障和各类故障类型对应的数值型数据。举例来说,服务器没有故障时可以用数值“0”表示,当中央处理器故障时可以用数值“1”表示,当内存故障时可用“2”表示,在具体实施过程中数值与故障类型的对应关系可以自由设定。

S203,将归一化后的数据通过随机森林算法预测是否存在故障,其中,基于随机森林算法的故障检测部分中,分为随机森林的训练过程和预测过程,随机森林的训练过程如下:

选取部分有标签的数据作为样本集S,训练集的每个数据的维度即特征维度为F,需要确定的参数有,决策树的数量t,每棵树的深度d,每个节点使用到的特征数量f,终止条件:节点上最少的样本数s,节点上最少的信息增益m;

A随机森林的训练过程如下:

A1、从样本集S中有放回的抽取大小和样本集S一样的训练集S(i),随机的选择作为根节点的样本,从根节点开始训练;

A2、如果当前节点达到终止条件,则设置当前节点为叶子节点,该叶子节点的预测输出为当前集合样本中数量最多的那一类c(j),概率p为c(j)占当前样本集的比例,继续训练其他节点,如果当前节点没有达到终止条件,则从F维特征中无放回的随机选取f维特征;利用这f维特征,寻找分类效果最好的一维特征k及其阈值th,当前节点上样本的第k维特征小于th的样本被划分到左节点,其余的被划分为右节点。继续训练其他节点。

A3、重复A2直至一棵决策树中所有节点都训练过了或者被标记为叶子节点。

A4、重复A1-A3直到随机森林中所有的随机数都被训练过。

B、随机森林的预测过程如下:

B1、从当前决策树的根节点开始,根据当前节点的阈值th,判断是进入左节点(当前节点的阈值小于阈值th)还是计入右节点(当前节点的阈值大于等于阈值th),直到到达某个叶子节点,并输出预测结果;

B2、重复执行B1到所有t棵决策树都输出了预测值,输出为所有树种预测概率总和最大的那一类,即对每个c(j)的p的累计。

B3、使用下述公式计算Gini值作为评判标准;

Gini=1-∑(p(i)*p(i))

其中,c(j)叶子节点的预测输出为当前集合样本中数量最多的那一类,概率p为c(j)占当前样本集的比例。

采用以上方式训练得到基于随机森林算法的预先训练的预测模型,将预处理完成的数据作为随机森林算法的一个样本进行输入,输出预测的故障类型。

S204,如果存在故障的形成一条报警记录,将故障类型反馈到web页面中显示。

S205,监测服务器状态判断服务器是否宕机,如果服务器宕机则进入步骤S206。

S206,当服务器的状态为宕机时,则对发生宕机的服务器进行复位操作。

本实施的服务器故障检测方法,利用BMC获得服务器信息,通过随机森林算法对信息分析预测服务器是否会发生故障,并将故障反馈给网页进行显示,并监测服务器状态,以提高服务器的稳定性,并且随机森林可以处理较大的输入变量时无需变量删除,可给出对分类最重要的变量的评估,并利用估算缺失数据的有效方法,在大部分数据丢失时仍能保持准确性。

在一些实施例中,请结合图3所示,本发明提供了一种服务器故障检测装置300,所述装置包括:

数据获取模块301,配置用于获取服务器的当前运行数据;

预处理模块302,配置用于对所述当前运行数据进行预处理以得到预处理后的运行数据;

预测模块303,配置用于将所述预处理后的运行数据输入至预先训练的预测模型,其中,所述预先训练的预测模型基于随机森林算法训练得到,且用于表征运行数据与故障类型的对应关系;

故障确定模块304,配置用于根据所述预先训练的预测模型的输出确定当前服务器是否发生故障,以及故障所属的故障类型。

需要说明的是,关于服务器故障检测装置的具体限定可以参见上文中对服务器故障检测方法的限定,在此不再赘述。上述服务器故障检测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

根据本发明的另一方面,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图请参照图4所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的服务器故障检测方法,具体来说,所述方法包括以下步骤:

获取服务器的当前运行数据;对所述当前运行数据进行预处理以得到预处理后的运行数据;将所述预处理后的运行数据输入至预先训练的预测模型,其中,所述预先训练的预测模型基于随机森林算法训练得到,且用于表征运行数据与故障类型的对应关系;根据所述预先训练的预测模型的输出确定当前服务器是否发生故障,以及故障所属的故障类型。

根据本发明的又一方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的服务器故障检测方法,具体来说,包括执行以下步骤:

获取服务器的当前运行数据;对所述当前运行数据进行预处理以得到预处理后的运行数据;将所述预处理后的运行数据输入至预先训练的预测模型,其中,所述预先训练的预测模型基于随机森林算法训练得到,且用于表征运行数据与故障类型的对应关系;根据所述预先训练的预测模型的输出确定当前服务器是否发生故障,以及故障所属的故障类型。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

相关技术
  • 一种服务器故障检测方法、装置、计算机设备及存储介质
  • 一种服务器故障检测方法、系统及计算机可读存储介质
技术分类

06120113822727