CN111930553B - 一种服务器内存故障预警方法及系统 - Google Patents

一种服务器内存故障预警方法及系统 Download PDF

Info

Publication number
CN111930553B
CN111930553B CN202010682078.1A CN202010682078A CN111930553B CN 111930553 B CN111930553 B CN 111930553B CN 202010682078 A CN202010682078 A CN 202010682078A CN 111930553 B CN111930553 B CN 111930553B
Authority
CN
China
Prior art keywords
memory
early warning
read
bmc
ecc number
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.)
Active
Application number
CN202010682078.1A
Other languages
English (en)
Other versions
CN111930553A (zh
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.)
Wuhan Changjiang Computing Technology Co ltd
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies 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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN202010682078.1A priority Critical patent/CN111930553B/zh
Publication of CN111930553A publication Critical patent/CN111930553A/zh
Application granted granted Critical
Publication of CN111930553B publication Critical patent/CN111930553B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/324Display of status information
    • G06F11/327Alarm or error message display

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种服务器内存故障预警方法及系统,所述方法包括步骤:BIOS注册SMI中断服务器程序,并读取内存ECC数和内存读写次数;BIOS判断读取到的内存ECC数和内存读写次数是否满足所述内存预警条件,若是,则通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数;BMC接收所述内存ECC数和内存读写次数,根据预设的预警算法进行内存故障预警的预判处理,并在产生内存故障预警后,触发显示告警事件。本申请提供的服务器内存故障预警方法,可以对内存条出现故障的可能性进行预测,可靠性更好。

Description

一种服务器内存故障预警方法及系统
技术领域
本申请涉及服务器内存技术领域,特别涉及一种服务器内存故障预警方法及系统。
背景技术
在服务器应用领域,读写速率最快的存储外设是内存,而且服务器内存插槽众多,容量非常大,属于最容易出现故障的服务器外设,同时服务器引导软件BIOS(Basic InputOutput System,基本输入输出系统)每次启动都会对内存进行初始化,如果内存出现故障,会导致内存初始化失败,服务器出现宕机事件,造成的后果非常严重。
目前服务器引导软件BIOS或服务器监控管理软件BMC(Baseboard ManagerController,基板管理控制器)常用的方法是当BIOS发现内存有故障的时候,BIOS会通过IPMI(Intelligent Platform Management Interface,智能平台管理接口)向BMC发送内存条故障告警事件,BMC只是将内存故障告警事件记录下来供用户主动查询,但是BIOS上报的只是内存条故障事件,并没有对故障内存条出现故障的可能性做出预测,由于BIOS只会在重启阶段对内存进行故障检测,CPU重启后,ECC(Error Checking and Correcting,错误检查和纠正)内存计数会清0,所以无法检测在OS运行阶段的情况下,内存是否发生过故障,使得上报给BMC的内存故障告警有极大的局限性,不能准确反映内存故障状态。
发明内容
本申请实施例提供一种服务器内存故障预警方法及系统,以解决相关技术中无法对内存条出现故障的可能性进行预测、以及反映内存故障状态不够准确的问题。
第一方面,本申请提供了一种服务器内存故障预警方法,其包括步骤:
服务器引导软件BIOS注册管理信息结构SMI中断服务器程序,所述SMI中断服务器程序的函数包括读取内存错误检查和纠正ECC数的函数和内存读写次数的函数,并读取内存ECC数和内存读写次数;
BIOS判断读取到的内存ECC数和内存读写次数是否满足预设的内存预警条件,若是,则通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数;
服务器监控管理软件BMC接收所述内存ECC数和内存读写次数,根据预设的预警算法进行内存故障预警的预判处理,并在产生内存故障预警后,触发显示告警事件。
一些实施例中,所述根据预设的预警算法进行内存故障预警的预判处理的具体步骤包括:
根据内存ECC数和接收ECC数的时间间隔计算内存ECC数的变化速率,结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警的预判处理。
一些实施例中,所述预设的预警算法包括:
根据预设的内存条的理论寿命,计算得到每个内存条的预警值,计算公式为:
预警值=内存ECC数*内存ECC数的变化速率*内存读写次数/内存条的理论寿命;
设定一个预警阈值,当内存条的预警值超过设定的预警阈值时,则产生内存故障预警,否则,则不产生内存故障预警。
一些实施例中,在所述BIOS注册管理信息结构SMI中断服务器程序之前,还包括步骤:
BIOS初始化内存及CPU的内存控制器MC,当初始化内存条失败时,则通过IPMI向BMC发送该内存条不可用的严重告警信息,并跳过该内存条,继续初始化其他内存条;
BMC接收BIOS发送的该内存条不可用的严重告警信息,并根据该内存条不可用的严重告警信息进行内存故障预警。
一些实施例中,还包括步骤:BMC预先存储预设的内存预警条件;
BMC持续监听内存预警条件更新事件,并在监听到内存预警条件有更新时,BMC更新已存储的内存预警条件;
当BIOS向BMC请求内存预警条件时,若BMC监听到内存预警条件更新,则BMC通过IPMI向BIOS发送更新后的内存预警条件;若BMC没有监听到内存预警条件更新,则BMC通过IPMI向BIOS发送预设的内存预警条件。
一些实施例中,所述BMC接收所述内存ECC数和内存读写次数的具体步骤包括:
BMC初始化链表,所述链表用于存放BIOS发送的内存ECC数、内存读写次数及预警标志位,并初始化所述预警标志位;
BMC接收所述内存ECC数和内存读写次数,并查询所述链表,记录接收到的内存ECC数和内存读写次数;
在产生内存故障预警后,更新所述预警标志位。
一些实施例中,所述内存预警条件包括:内存ECC数超过预设的ECC数阈值,或者内存读写次数超过预设的读写次数阈值;
所述BIOS判断读取到的内存ECC数和内存读写次数是否满足所述内存预警条件的具体步骤包括:
判断所述内存ECC数是否超过ECC数阈值,并判断所述内存读写次数是否超过读写次数阈值;
当所述内存ECC数不超过ECC数阈值,且所述内存读写次数不超过读写次数阈值时,则内存ECC数和内存读写次数不满足所述内存预警条件,否则内存ECC数和内存读写次数满足所述内存预警条件。
第二方面,本申请提供了一种服务器内存故障预警系统,所述服务器内存故障预警系统包括:
第一模块,所述第一模块用于执行服务器引导软件BIOS的所有功能,所述服务器引导软件BIOS用于注册管理信息结构SMI中断服务器程序,所述SMI中断服务器程序的函数包括读取内存ECC数的函数和内存读写次数的函数,读取内存ECC数和内存读写次数,判断读取到的内存错误检查和纠正ECC数和内存读写次数是否满足预设的内存预警条件,若是,则通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数;
第二模块,所述第二模块用于执行服务器监控管理软件BMC的所有功能,所述服务器监控管理软件BMC用于接收内存ECC数和内存读写次数,根据预设的预警算法进行内存故障预警的预判处理,并在产生内存故障预警后,触发显示告警事件。
一些实施例中,所述服务器监控管理软件BMC具体用于:
根据内存ECC数和接收ECC数的时间间隔计算内存ECC数的变化速率,结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警的预判处理。
一些实施例中,所述服务器引导软件BIOS还用于初始化内存及CPU的内存控制器MC,当初始化内存条失败时,则通过IPMI向BMC发送该内存条不可用的严重告警信息,并跳过该内存条,继续初始化其他内存条;
所述服务器监控管理软件BMC还用于接收BIOS发送的该内存条不可用的严重告警信息,并根据该内存条不可用的严重告警信息进行内存故障预警。
本申请提供的技术方案带来的有益效果包括:可以对内存条出现故障的可能性进行预测,并且可以更加准确地反映内存故障状态,从而使得服务器内存故障预警的可靠性更好。
本申请提供了一种服务器内存故障预警方法,一方面,由于是根据内存ECC数和内存读写次数来进行内存故障预警,可以预测内存存在相同ECC数的情况下根据内存读写次数来进行预警,并且也可以预测内存读写次数相同的情况下根据内存ECC数来进行预警,也可以综合ECC数和内存读写次数来进行预警,进而实现对内存条出现故障的可能性进行预测,使得此种服务器内存故障预警的方法更加科学准确。
另一方面,由于是通过SMI中断服务器程序来读取内存ECC数和内存读写次数,SMI优先级最高,响应更快,提高了内存故障预警的实时性,再者,可以检测在BIOS和OS运行阶段的内存发生过故障的情况,可以更加准确地反映内存故障状态,进而提高内存故障预警的可靠性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的服务器内存故障预警方法的流程图;
图2为本申请实施例提供的BIOS侧内存预警流程图;
图3为本申请实施例提供的BMC侧内存预警流程图;
图4为本申请实施例提供的服务器内存故障预警系统的结构框图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请的一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1所示,本申请实施例提供了一种服务器内存故障预警方法,其包括步骤:
S1:服务器监控管理软件BMC存储内存预警条件;
S2:服务器引导软件BIOS向BMC请求内存预警条件;
S3:BIOS注册管理信息结构SMI中断服务器程序,所述SMI中断服务器程序的函数包括读取内存错误检查和纠正ECC数的函数和内存读写次数的函数;
S4:BIOS读取内存ECC数和内存读写次数;
S5:BIOS判断读取到的内存ECC数和内存读写次数是否满足预设的内存预警条件,若是,则转入步骤S6,若否,则转入步骤S4,此处预设的内存预警条件即为BIOS向BMC请求的内存预警条件;
S6:通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数;
S7:BMC接收所述内存ECC数和内存读写次数,根据预设的预警算法进行内存故障预警的预判处理,并在产生内存故障预警后,触发显示告警事件。
本申请实施例提供的一种服务器内存故障预警方法,一方面,由于是根据内存ECC数和内存读写次数来进行内存故障预警,可以预测内存存在相同ECC数的情况下根据内存读写次数来进行预警,并且也可以预测内存读写次数相同的情况下根据内存ECC数来进行预警,也可以综合ECC数和内存读写次数来进行预警,进而实现对内存条出现故障的可能性进行预测,使得此种服务器内存故障预警的方法更加科学准确。
另一方面,由于是通过SMI中断服务器程序来读取内存ECC数和内存读写次数,SMI优先级最高,响应更快,提高了内存故障预警的实时性,再者,可以检测在BIOS和OS运行阶段的内存发生过故障的情况,可以更加准确地反映内存故障状态,进而提高内存故障预警的可靠性。
更进一步地,在本申请实施例中,步骤S7中所述根据预设的预警算法进行内存故障预警的预判处理的具体步骤包括:
根据内存ECC数和接收ECC数的时间间隔计算内存ECC数的变化速率,结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警。
在本申请实施例中,在进行内存故障预警时,不仅考虑到了内存ECC数和内存读写次数,而且考虑到了内存ECC数的变化速率,可以提高内存故障预警的准确性,方法更为可靠。
需要说明的是,本申请实施例中结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警的预判处理,具体为:
当所述内存ECC数、内存ECC数的变化速率、内存读写次数满足预设的预警算法,则产生内存故障预警;
当所述内存ECC数、内存ECC数的变化速率、内存读写次数不满足预设的预警算法,则不产生内存故障预警。
具体地,本申请实施例中,所述预设的预警算法为:
根据预设的内存条的理论寿命,计算得到每个内存条的预警值,计算公式为:
预警值=内存ECC数*内存ECC数的变化速率*内存读写次数/内存条的理论寿命;
设定一个预警阈值,当内存条的预警值超过设定的预警阈值时,则产生内存故障预警,否则,则不产生内存故障预警。
更进一步地,在本申请实施例中,由于内存条的预警值越大,表明内存条发送故障的可能性越大,则优先进行预警,在产生内存故障预警时,也会根据内存条预警值的大小进行优先级排序,预警值越大的内存条优先进行预警。
更进一步地,在本申请实施例中,所述服务器内存故障预警方法,在所述BIOS注册管理信息结构SMI中断服务器程序之前,还包括步骤:
BIOS初始化内存及CPU的内存控制器MC,当初始化内存条失败时,则通过IPMI向BMC发送该内存条不可用的严重告警信息,并跳过该内存条,继续初始化其他内存条;
BMC接收BIOS发送的该内存条不可用的严重告警信息,并根据该内存条不可用的严重告警信息进行内存故障预警。
在本申请实施例中,当内存条在初始化过程中,出现初始化内存条失败时,则表示该内存条存在故障,BIOS会向BMC发送该内存条不可用的严重告警信息,BMC进行相应的内存故障预警,即在本申请实施例的内存故障预警还会考虑是否初始化内存条失败,可以提高内存故障预警的准确性,方法更为可靠。
更进一步地,在本申请实施例中,所述服务器内存故障预警方法还包括步骤:
BMC预先存储预设的内存预警条件;
BMC持续监听内存预警条件更新事件,并在监听到内存预警条件有更新时,BMC更新已存储的内存预警条件;
当BIOS向BMC请求内存预警条件时,若BMC监听到内存预警条件更新,则BMC通过IPMI向BIOS发送更新后的内存预警条件;若BMC没有监听到内存预警条件更新,则BMC通过IPMI向BIOS发送预设的内存预警条件。
在本申请实施例中,内存预警条件可以根据实际需要进行设定和更新,当内存预警条件更新后,BMC会监听到内存预警条件更新事件,当BIOS向BMC请求内存预警条件时,BIOS会请求得到更新后的内存预警条件,并根据更新后的内存预警条件来决定是否向BMC发送内存ECC数和内存读写次数,使得本申请实施例的服务器内存故障预警方法可以适用于多种不同情况,适用性性更广,通用性更强。
更进一步地,在本申请实施例中,所述BMC接收所述内存ECC数和内存读写次数的具体步骤包括:
BMC初始化链表,所述链表用于存放BIOS发送的内存ECC数、内存读写次数及预警标志位,并初始化所述预警标志位;
BMC接收所述内存ECC数和内存读写次数,并查询所述链表,记录接收到的内存ECC数和内存读写次数;
在产生内存故障预警后,更新所述预警标志位。
更进一步地,在本申请实施例中,所述内存预警条件包括:内存ECC数超过预设的ECC数阈值,或者内存读写次数超过预设的读写次数阈值;
所述BIOS判断读取到的内存ECC数和内存读写次数是否满足所述内存预警条件的具体步骤包括:
判断所述内存ECC数是否超过ECC数阈值,并判断所述内存读写次数是否超过读写次数阈值;
当所述内存ECC数不超过ECC数阈值,且所述内存读写次数不超过读写次数阈值时,则内存ECC数和内存读写次数不满足所述内存预警条件,否则内存ECC数和内存读写次数满足所述内存预警条件。
在本申请实施例中,当所述内存ECC数超过ECC数阈值,或者所述内存读写次数超过读写次数阈值时,则内存ECC数和内存读写次数满足所述内存预警条件。
在本申请实施例中,BIOS进行第一次预警判断,根据预设的阈值来判断是否向BMC发送内存ECC数和内存读写次数,可以减小BMC的CPU的使用率,提高该方法的可靠性。
从不同主体的角度来看,本申请实施例的服务器内存故障预警方法分为两个部分流程来完成,分别为BIOS侧内存预警流程、BMC侧内存预警流程。
参见图2所示,BIOS侧内存预警流程包括步骤:
S101:初始化内存及CPU的内存控制器MC,当初始化内存条失败时,则通过IPMI向BMC发送该内存条不可用的严重告警信息,并跳过该内存条,继续初始化其他内存条;
S102:向BMC请求内存预警条件;
S103:注册管理信息结构SMI中断服务器程序,所述SMI中断服务器程序的函数包括读取内存错误检查和纠正ECC数的函数和内存读写次数的函数;
S104:读取内存ECC数和内存读写次数;
S105:判断读取到的内存ECC数和内存读写次数是否满足所述内存预警条件,若是,则转入步骤S106,若否,则转入步骤S104;
S106:通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数。
参见图3所示,BMC侧内存预警流程包括步骤:
S201:预先存储预设的内存预警条件;
S202:监听内存预警条件更新事件,并在监听到内存预警条件有更新时,更新已存储的内存预警条件;
S203:当BIOS向BMC请求内存预警条件时,若BMC监听到内存预警条件更新,则BMC通过IPMI向BIOS发送更新后的内存预警条件;若BMC没有监听到内存预警条件更新,则BMC通过IPMI向BIOS发送预设的内存预警条件;
S204:接收BIOS发送的内存ECC数和内存读写次数;
S205:根据内存ECC数和接收ECC数的时间间隔计算内存ECC数的变化速率,结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警的预判处理;
S206:在产生内存故障预警后,触发web前端显示告警事件,并记录预警日志;
S207:BMC web前端显示故障内存条的告警信息,并记录事件。
参见图4所示,本申请实施例还提供了一种服务器内存故障预警系统,所述服务器内存故障预警系统包括第一模块和第二模块。
所述第一模块用于执行服务器引导软件BIOS的所有功能,所述服务器引导软件BIOS用于注册管理信息结构SMI中断服务器程序,所述SMI中断服务器程序的函数包括读取内存ECC数的函数和内存读写次数的函数,读取内存ECC数和内存读写次数,判断读取到的内存错误检查和纠正ECC数和内存读写次数是否满足预设的内存预警条件,若是,则通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数;
所述第二模块用于执行服务器监控管理软件BMC的所有功能,所述服务器监控管理软件BMC用于接收内存ECC数和内存读写次数,根据预设的预警算法进行内存故障预警的预判处理,并在产生内存故障预警后,触发显示告警事件。
更进一步地,在本申请实施例的服务器内存故障预警系统中,所述服务器监控管理软件BMC具体用于:
根据内存ECC数和接收ECC数的时间间隔计算内存ECC数的变化速率,结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警。
更进一步地,在本申请实施例的服务器内存故障预警系统中,所述服务器引导软件BIOS还用于初始化内存及CPU的内存控制器MC,当初始化内存条失败时,则通过IPMI向BMC发送该内存条不可用的严重告警信息,并跳过该内存条,继续初始化其他内存条;
所述服务器监控管理软件BMC还用于接收BIOS发送的该内存条不可用的严重告警信息,并根据该内存条不可用的严重告警信息进行内存故障预警。
更进一步地,在本申请实施例的服务器内存故障预警系统中,所述服务器监控管理软件BMC还用于:
BMC预先存储预设的内存预警条件;
BMC持续监听内存预警条件更新事件,并在监听到内存预警条件有更新时,BMC更新已存储的内存预警条件;
当BIOS向BMC请求内存预警条件时,若BMC监听到内存预警条件更新,则BMC通过IPMI向BIOS发送更新后的内存预警条件;若BMC没有监听到内存预警条件更新,则BMC通过IPMI向BIOS发送预设的内存预警条件。
更进一步地,在本申请实施例的服务器内存故障预警系统中,所述服务器监控管理软件BMC还用于:
BMC初始化链表,所述链表用于存放BIOS发送的内存ECC数、内存读写次数及预警标志位,并初始化所述预警标志位;
BMC接收所述内存ECC数和内存读写次数,并查询所述链表,记录接收到的内存ECC数和内存读写次数;
在产生内存故障预警后,更新所述预警标志位。
更进一步地,在本申请实施例的服务器内存故障预警系统中,所述内存预警条件包括:内存ECC数超过预设的ECC数阈值,或者内存读写次数超过预设的读写次数阈值。
所述服务器引导软件BIOS具体用于:
判断所述内存ECC数是否超过ECC数阈值,并判断所述内存读写次数是否超过读写次数阈值;
当所述内存ECC数不超过ECC数阈值,且所述内存读写次数不超过读写次数阈值时,则内存ECC数和内存读写次数不满足所述内存预警条件,否则内存ECC数和内存读写次数满足所述内存预警条件。
本申请实施例提供的一种服务器内存故障预警系统,一方面,由于是根据内存ECC数和内存读写次数来进行内存故障预警,可以预测内存存在相同ECC数的情况下根据内存读写次数来进行预警,并且也可以预测内存读写次数相同的情况下根据内存ECC数来进行预警,也可以综合ECC数和内存读写次数来进行预警,进而实现对内存条出现故障的可能性进行预测,使得此种服务器内存故障预警的方法更加科学准确。
另一方面,由于是通过SMI中断服务器程序来读取内存ECC数和内存读写次数,SMI优先级最高,响应更快,提高了内存故障预警的实时性,再者,可以检测在BIOS和OS运行阶段的内存发生过故障的情况,可以更加准确地反映内存故障状态,进而提高内存故障预警的可靠性。
在本申请的描述中,需要说明的是,术语“上”、“下”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本申请中的具体含义。
需要说明的是,在本申请中,诸如“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅是本申请的具体实施方式,使本领域技术人员能够理解或实现本申请。对这些实施例的多种修改对本领域的技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所申请的原理和新颖特点相一致的最宽的范围。

Claims (7)

1.一种服务器内存故障预警方法,其特征在于,其包括步骤:
服务器引导软件BIOS注册管理信息结构SMI中断服务器程序,所述SMI中断服务器程序的函数包括读取内存错误检查和纠正ECC数的函数和内存读写次数的函数,并读取内存ECC数和内存读写次数;
BIOS判断读取到的内存ECC数和内存读写次数是否满足预设的内存预警条件,若是,则通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数;
服务器监控管理软件BMC接收所述内存ECC数和内存读写次数,根据预设的预警算法进行内存故障预警的预判处理,并在产生内存故障预警后,触发显示告警事件;
其中,所述根据预设的预警算法进行内存故障预警的预判处理的具体步骤包括:
根据内存ECC数和接收ECC数的时间间隔计算内存ECC数的变化速率,结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警的预判处理;
其中,所述预设的预警算法包括:
根据预设的内存条的理论寿命,计算得到每个内存条的预警值,计算公式为:
预警值=内存ECC数*内存ECC数的变化速率*内存读写次数/内存条的理论寿命;
设定一个预警阈值,当内存条的预警值超过设定的预警阈值时,则产生内存故障预警,否则,则不产生内存故障预警。
2.如权利要求1所述的服务器内存故障预警方法,其特征在于,在所述BIOS注册管理信息结构SMI中断服务器程序之前,还包括步骤:
BIOS初始化内存及CPU的内存控制器MC,当初始化内存条失败时,则通过IPMI向BMC发送该内存条不可用的严重告警信息,并跳过该内存条,继续初始化其他内存条;
BMC接收BIOS发送的该内存条不可用的严重告警信息,并根据该内存条不可用的严重告警信息进行内存故障预警。
3.如权利要求1所述的服务器内存故障预警方法,其特征在于,还包括步骤:BMC预先存储预设的内存预警条件;
BMC持续监听内存预警条件更新事件,并在监听到内存预警条件有更新时,BMC更新已存储的内存预警条件;
当BIOS向BMC请求内存预警条件时,若BMC监听到内存预警条件更新,则BMC通过IPMI向BIOS发送更新后的内存预警条件;若BMC没有监听到内存预警条件更新,则BMC通过IPMI向BIOS发送预设的内存预警条件。
4.如权利要求1所述的服务器内存故障预警方法,其特征在于,所述BMC接收所述内存ECC数和内存读写次数的具体步骤包括:
BMC初始化链表,所述链表用于存放BIOS发送的内存ECC数、内存读写次数及预警标志位,并初始化所述预警标志位;
BMC接收所述内存ECC数和内存读写次数,并查询所述链表,记录接收到的内存ECC数和内存读写次数;
在产生内存故障预警后,更新所述预警标志位。
5.如权利要求1所述的服务器内存故障预警方法,其特征在于,所述内存预警条件包括:内存ECC数超过预设的ECC数阈值,或者内存读写次数超过预设的读写次数阈值;
所述BIOS判断读取到的内存ECC数和内存读写次数是否满足所述内存预警条件的具体步骤包括:
判断所述内存ECC数是否超过ECC数阈值,并判断所述内存读写次数是否超过读写次数阈值;
当所述内存ECC数不超过ECC数阈值,且所述内存读写次数不超过读写次数阈值时,则内存ECC数和内存读写次数不满足所述内存预警条件,否则内存ECC数和内存读写次数满足所述内存预警条件。
6.一种服务器内存故障预警系统,其特征在于,所述服务器内存故障预警系统包括:
第一模块,所述第一模块用于执行服务器引导软件BIOS的所有功能,所述服务器引导软件BIOS用于注册管理信息结构SMI中断服务器程序,所述SMI中断服务器程序的函数包括读取内存ECC数的函数和内存读写次数的函数,读取内存ECC数和内存读写次数,判断读取到的内存错误检查和纠正ECC数和内存读写次数是否满足预设的内存预警条件,若是,则通过智能平台管理接口IPMI向BMC发送所述读取到的内存ECC数和内存读写次数;
第二模块,所述第二模块用于执行服务器监控管理软件BMC的所有功能,所述服务器监控管理软件BMC用于接收内存ECC数和内存读写次数,根据预设的预警算法进行内存故障预警的预判处理,并在产生内存故障预警后,触发显示告警事件;
其中,所述服务器监控管理软件BMC具体用于:
根据内存ECC数和接收ECC数的时间间隔计算内存ECC数的变化速率,结合内存ECC数、内存ECC数的变化速率、内存读写次数、预设的预警算法进行内存故障预警的预判处理;
其中,所述预设的预警算法包括:
根据预设的内存条的理论寿命,计算得到每个内存条的预警值,计算公式为:
预警值=内存ECC数*内存ECC数的变化速率*内存读写次数/内存条的理论寿命;
设定一个预警阈值,当内存条的预警值超过设定的预警阈值时,则产生内存故障预警,否则,则不产生内存故障预警。
7.如权利要求6所述的服务器内存故障预警系统,其特征在于:
所述服务器引导软件BIOS还用于初始化内存及CPU的内存控制器MC,当初始化内存条失败时,则通过IPMI向BMC发送该内存条不可用的严重告警信息,并跳过该内存条,继续初始化其他内存条;
所述服务器监控管理软件BMC还用于接收BIOS发送的该内存条不可用的严重告警信息,并根据该内存条不可用的严重告警信息进行内存故障预警。
CN202010682078.1A 2020-07-15 2020-07-15 一种服务器内存故障预警方法及系统 Active CN111930553B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010682078.1A CN111930553B (zh) 2020-07-15 2020-07-15 一种服务器内存故障预警方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010682078.1A CN111930553B (zh) 2020-07-15 2020-07-15 一种服务器内存故障预警方法及系统

Publications (2)

Publication Number Publication Date
CN111930553A CN111930553A (zh) 2020-11-13
CN111930553B true CN111930553B (zh) 2022-05-20

Family

ID=73313457

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010682078.1A Active CN111930553B (zh) 2020-07-15 2020-07-15 一种服务器内存故障预警方法及系统

Country Status (1)

Country Link
CN (1) CN111930553B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115292113B (zh) * 2022-09-30 2023-01-06 新华三信息技术有限公司 对服务器的内存进行故障检测方法、装置及电子设备

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573435A (ja) * 1991-09-12 1993-03-26 Nagano Oki Denki Kk 記憶素子監視保護装置
CN103514068A (zh) * 2012-06-28 2014-01-15 北京百度网讯科技有限公司 内存故障自动定位方法
CN109086151A (zh) * 2017-06-13 2018-12-25 中兴通讯股份有限公司 一种服务器上隔离内存故障的方法及装置
CN110008056A (zh) * 2019-03-28 2019-07-12 联想(北京)有限公司 内存管理方法、装置、电子设备及计算机可读存储介质
CN110674005A (zh) * 2019-08-30 2020-01-10 苏州浪潮智能科技有限公司 一种监控服务器内存的方法、设备及可读介质
CN111209129A (zh) * 2019-12-27 2020-05-29 曙光信息产业股份有限公司 基于amd平台的内存优化方法和装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102370278B1 (ko) * 2017-11-30 2022-03-07 에스케이하이닉스 주식회사 메모리 컨트롤러, 이를 포함하는 메모리 시스템, 및 그의 동작방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0573435A (ja) * 1991-09-12 1993-03-26 Nagano Oki Denki Kk 記憶素子監視保護装置
CN103514068A (zh) * 2012-06-28 2014-01-15 北京百度网讯科技有限公司 内存故障自动定位方法
CN109086151A (zh) * 2017-06-13 2018-12-25 中兴通讯股份有限公司 一种服务器上隔离内存故障的方法及装置
CN110008056A (zh) * 2019-03-28 2019-07-12 联想(北京)有限公司 内存管理方法、装置、电子设备及计算机可读存储介质
CN110674005A (zh) * 2019-08-30 2020-01-10 苏州浪潮智能科技有限公司 一种监控服务器内存的方法、设备及可读介质
CN111209129A (zh) * 2019-12-27 2020-05-29 曙光信息产业股份有限公司 基于amd平台的内存优化方法和装置

Also Published As

Publication number Publication date
CN111930553A (zh) 2020-11-13

Similar Documents

Publication Publication Date Title
US6832329B2 (en) Cache thresholding method, apparatus, and program for predictive reporting of array bit line or driver failures
US20060253740A1 (en) System and method for hardware error reporting and recovery
EP1779244A1 (en) System and method to detect errors and predict potential failures
US6789048B2 (en) Method, apparatus, and computer program product for deconfiguring a processor
CN112631820A (zh) 软件系统的故障恢复方法及装置
CN111930553B (zh) 一种服务器内存故障预警方法及系统
Du et al. Predicting uncorrectable memory errors for proactive replacement: An empirical study on large-scale field data
CN115981898A (zh) 一种内存可纠错误处理方法、装置、设备及可读存储介质
US20220391298A1 (en) Node Mode Adjustment Method for when Storage Cluster BBU Fails and Related Component
CN115480947A (zh) 一种内存条故障检测装置及检测方法
US7206975B1 (en) Internal product fault monitoring apparatus and method
CN113536320A (zh) 一种错误信息处理方法、装置及存储介质
CN105868038B (zh) 内存错误处理方法及电子设备
US20200111539A1 (en) Information processing apparatus for repair management of storage medium
US20070234114A1 (en) Method, apparatus, and computer program product for implementing enhanced performance of a computer system with partially degraded hardware
US8549477B2 (en) Mapping usage patterns using code features
CN115705261A (zh) 内存故障的修复方法、cpu、os、bios及服务器
CN113127245B (zh) 一种系统管理中断的处理方法、系统及装置
US20220245042A1 (en) Predicting motherboard connector failures
CN113778763A (zh) 一种三方接口服务故障智能切换方法及系统
CN115237641A (zh) 故障检测的方法、装置、电子设备和可读介质
WO2021188293A1 (en) Method to overload hardware pin for improved system management
CN111414267A (zh) 运用于数据中心的机柜异常状态的远端排除方法
CN111414274A (zh) 运用于数据中心的机柜异常状态的远端排除方法
CN111416721A (zh) 运用于数据中心的机柜异常状态的远端排除方法

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
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240703

Address after: 430000 No. 6, High-tech Fourth Road, Donghu High-tech Development Zone, Wuhan City, Hubei Province

Patentee after: FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

Country or region after: China

Patentee after: Wuhan Changjiang Computing Technology Co.,Ltd.

Address before: 430000 No. 6, High-tech Fourth Road, Donghu High-tech Development Zone, Wuhan City, Hubei Province

Patentee before: FIBERHOME TELECOMMUNICATION TECHNOLOGIES Co.,Ltd.

Country or region before: China