内存报错导致宕机的问题处理方法、装置、设备及介质与流程
未命名
10-21
阅读:64
评论:0
1.本发明涉及内存测试技术领域,具体涉及内存报错导致宕机的问题处理方法、装置、设备及介质。
背景技术:
2.arm架构的芯片由于低功耗、价格便宜、扩展性强等优势,使得arm架构芯片越来越受欢迎,在服务器领域,x86架构服务器一直处于主导地位,但是近几年由于arm架构芯片的优势,arm服务器占比逐渐提高,由于arm架构服务器稳定性相比x86服务器低,arm架构服务器可运维性逐渐受到重视,内存作为服务器的重要部件,内存的可靠性在运维中占据重要位置。
3.服务器在跑各种应用程序时,会与cpu、内存、硬盘等频繁进行信息交互处理,产生各种不同的压力,内存在应用过程中也不可避免的产生不可更正的错误uce、或者灾难性故障错误ierr,bios将故障信息发送给bmc和os,在相应故障日志中记录。
4.内存产生的不可更正错误uce、或者灾难性故障错误ierr,不做任何处理,仅仅上报日志,虽然日志可以清晰看到当前存在的问题,但是也相应的导致系统宕机,虽然可以保持宕机现象便于分析,但是影响运营,当这些错误产生时,系统整体宕机,影响程序运行,进而客户无法访问系统,影响用户体验,造成损失。
技术实现要素:
5.内存产生的不可更正错误uce、或者灾难性故障错误ierr,不做任何处理,仅仅上报日志,虽然日志可以清晰看到当前存在的问题,但是也相应的导致系统宕机,虽然可以保持宕机现象便于分析,但是影响运营,当这些错误产生时,系统整体宕机,影响程序运行的问题,本发明提供内存报错导致宕机的问题处理方法、装置、设备及介质。
6.第一方面,本发明技术方案提供内存报错导致宕机的问题处理方法,包括如下步骤:
7.检测内存错误并区分错误类型;
8.判断错误类型是否是内存可更正错误;
9.若是,发送故障信息给bmc,记录故障日志;
10.否则,将当前的内存错误进行降级处理;
11.判断降级后的内存错误的数量是否达到对应模块寄存器阈值;
12.若是,将故障内存做物理隔离处理;
13.否则,发送内存降级错误日志给bmc。
14.作为本发明技术方案的优选,该方法包括:
15.当内存错误类型为不可更正错误时,将所述不可更正错误进行降级处理成降级后的不可更正错误;
16.判断当前降级后的不可更正错误的数量是否达到降级后的不可更正错误模块寄
存器阈值;
17.若否,执行步骤:发送内存降级错误日志给bmc;
18.若是,执行步骤:将故障内存做物理隔离处理。
19.作为本发明技术方案的优选,该方法还包括:
20.当内存错误类型为灾难性故障时,将所述灾难性故障进行降级处理成降级后的灾难性故障;
21.判断降级后的灾难性故障的数量是否达到降级后的灾难性故障模块寄存器阈值;
22.若否,执行步骤:发送内存降级错误日志给bmc;
23.若是,执行步骤:将故障内存做隔离处理。
24.处理过程如下:检测到内存故障时,首先区分故障类型,对于可更正错误ce,不做降级处理,发送故障信息给bmc,记录故障日志,该错误类型不会引起系统宕机。当检测到内存错误类型为不可更正错误uce时,为不引起系统宕机,需要对uce进行降级处理,在uce降级为d-uce故障时,需要判断当前d-uce数量是否达到d-uce模块寄存器阈值a,当没有达到阈值时不会引起宕机,发送故障信息给bmc记录故障日志,当达到阈值a时,为不引起系统宕机,这时将该故障内存做物理隔离处理,即等同于没有配置该故障内存,进而不会引起宕机。当检测到内存错误类型为灾难性故障即ierr,该内存发生严重故障,将该故障降级为d-ierr,判断d-ierr故障数量是否达到d-ierr模块寄存器阈值b,当没有达到阈值b时,发送故障信息给bmc,记录故障日志,当达到阈值b时,为避免系统宕机,将该内存做隔离处理,其中d-ierr模块寄存器阈值b小于d-uce模块寄存器阈值a,即d-ierr类型的降级数量低。
25.作为本发明技术方案的优选,判断错误类型是否是内存可更正错误的步骤之后包括:
26.设置处理内存降级错误的程序在操作系统内核中的可纠正机器检查中断代码中;
27.设置内存可纠正错误产生中断类型为可纠正机器检查中断;
28.在可纠正机器检查中断处理中设置对机器校验库的数据解析功能;
29.获取可纠正机器检查中断,通过处理内存降级错误的程序将内存错误进行处理;
30.通过可纠正机器检查中断对机器校验库的数据解析功能获得具体的故障内存地址及错误类型;
31.若错误类型为降级错误,执行步骤:发送内存降级错误日志给bmc;
32.若错误类型为内存可更正错误,执行步骤:发送故障信息给bmc,记录故障日志。
33.作为本发明技术方案的优选,发送内存降级错误日志给bmc的步骤之后包括:
34.bmc接收到所述日志后,根据故障内存地址得到内存位置,并输出提示信息。
35.作为本发明技术方案的优选,将故障内存做隔离处理的步骤包括:
36.获取故障内存的内存信息;
37.发送内存隔离消息,所述隔离消息中携带有需要隔离的内存信息及隔离信息;
38.对所述内存隔离消息中的需要隔离的内存信息及隔离信息进行分析;
39.根据分析结果发送隔离指令,并根据所述隔离指令进行硬件配置,对所述故障内存进行隔离。
40.作为本发明技术方案的优选,根据内存错误信息获取故障内存的信息的步骤包括:
41.根据内存错误信息发送获取内存信息的指令;
42.响应所述获取指令,确定记录有表征内存信息的预设字符串的第一地址;
43.根据所述第一地址以及预设地址偏移信息生成预设地址范围;
44.读取存储于预设地址范围内的预设字符串;
45.根据所述预设字符串,确定所述获取指令针对的内存信息;
46.基于获取指令将确定的内存信息返回。
47.第二方面,本发明技术方案提供内存报错导致宕机的问题处理装置,包括检测模块、类型判断模块、发送模块、降级处理模块、数量判断模块和隔离处理模块;
48.检测模块,用于检测内存错误并区分错误类型;
49.类型判断模块,用于判断错误类型是否是内存可更正错误;
50.发送模块,用于发送故障信息给bmc,记录故障日志;
51.降级处理模块,用于将当前的内存错误进行降级处理;
52.数量判断模块,用于判断降级后的内存错误的数量是否达到对应模块寄存器阈值;
53.隔离处理模块,用于将故障内存做物理隔离处理。
54.作为本发明技术方案的优选,降级处理模块,用于当内存错误类型为不可更正错误时,将所述不可更正错误进行降级处理成降级后的不可更正错误;
55.数量判断模块,用于判断当前降级后的不可更正错误的数量是否达到降级后的不可更正错误模块寄存器阈值,若否触发发送模块发送内存降级错误日志给bmc;若是出发隔离模块将故障内存做物理隔离处理。
56.作为本发明技术方案的优选,降级处理模块,用于当内存错误类型为灾难性故障时,将所述灾难性故障进行降级处理成降级后的灾难性故障;
57.数量判断模块,用于判断降级后的灾难性故障的数量是否达到降级后的灾难性故障模块寄存器阈值若否触发发送模块发送内存降级错误日志给bmc;若是出发隔离模块将故障内存做物理隔离处理。
58.作为本发明技术方案的优选,该装置还包括设置检查模块,所述设置检查模块包括第一设置单元、第二设置单元、第三设置单元、处理单元和信息获取判断单元;
59.第一设置单元,用于设置处理内存降级错误的程序在操作系统内核中的可纠正机器检查中断代码中;
60.第二设置单元,用于设置内存可纠正错误产生中断类型为可纠正机器检查中断;
61.第三设置单元,用于在可纠正机器检查中断处理中设置对机器校验库的数据解析功能;
62.处理单元,用于获取可纠正机器检查中断,通过处理内存降级错误的程序将内存错误进行处理;
63.信息获取判断单元,用于通过可纠正机器检查中断对机器校验库的数据解析功能获得具体的故障内存地址及错误类型;若错误类型为降级错误触发发送模块发送内存降级错误日志给bmc;若错误类型为内存可更正错误,触发发送模块发送故障信息给bmc,记录故障日志。bmc接收到所述日志后,根据故障内存地址得到内存位置,并输出提示信息。
64.作为本发明技术方案的优选,隔离处理模块包括内存信息获取单元、隔离消息发
送单元、隔离消息分析单元、隔离指令发送单元和隔离处理单元;
65.内存信息获取单元,用于获取故障内存的内存信息;
66.隔离消息发送单元,用于发送内存隔离消息,所述隔离消息中携带有需要隔离的内存信息及隔离信息;
67.隔离消息分析单元,用于对所述内存隔离消息中的需要隔离的内存信息及隔离信息进行分析;
68.隔离指令发送单元,用于根据分析结果发送隔离指令;
69.隔离处理单元,用于根据所述隔离指令进行硬件配置,对所述故障内存进行隔离。
70.作为本发明技术方案的优选,内存信息获取单元包括指令发送子模块、指令响应子模块、地址范围获取子模块、字符串获取子模块和内存信息获取子模块;
71.指令发送子模块,用于根据内存错误信息发送获取内存信息的指令;
72.指令响应子模块,用于响应所述获取指令,确定记录有表征内存信息的预设字符串的第一地址;
73.地址范围获取子模块,用于根据所述第一地址以及预设地址偏移信息生成预设地址范围;
74.字符串获取子模块,用于读取存储于预设地址范围内的预设字符串;
75.内存信息获取子模块,用于根据所述预设字符串,确定所述获取指令针对的内存信息,并基于获取指令将确定的内存信息返回。
76.第三方面,本发明技术方案还提供一种电子设备,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所述的内存报错导致宕机的问题处理方法。
77.第四方面,本发明技术方案还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的内存报错导致宕机的问题处理方法。
78.从以上技术方案可以看出,本发明具有以下优点:采用故障内存隔离和故障降级相结合的方式,隔离单个故障内存,主要目的是使系统不宕机,不影响正常业务运行,但是同时可以清晰记载内存日志情况,方便运维及时处理。
79.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
80.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
81.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
82.图1是本发明一个实施例的方法的示意性流程图。
83.图2是本发明另一个实施例的方法的示意性流程图。
84.图3是本发明一个实施例的装置的示意性框图。
85.图4为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
86.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
87.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
88.在本技术所提供的实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
89.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本发明的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本发明的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本发明的各方面。为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。内存在产生不可更正错误uce、或者灾难性故障错误ierr,bios做分级处理,采用故障内存隔离和故障降级相结合的方式,隔离单个故障内存,不影响其他内存使用,优化故障日志,主要目的是使系统不宕机,不影响正常业务运行,但是同时可以清晰记载内存日志情况,方便运维及时处理。如图1所示,本发明实施例提供内存报错导致宕机的问题处理方法,包括如下步骤:
90.步骤1:检测内存错误并区分错误类型;
91.步骤2:判断错误类型是否是内存可更正错误;
92.若是,执行步骤3;否则,执行步骤4;
93.步骤3:发送故障信息给bmc,记录故障日志;
94.步骤4:将当前的内存错误进行降级处理;
95.步骤5:判断降级后的内存错误的数量是否达到对应模块寄存器阈值;
96.若是,执行步骤6;否则,执行步骤7;
97.步骤6:将故障内存做物理隔离处理;
98.步骤7:发送内存降级错误日志给bmc。
99.内存故障形式分为:不可更正错误即uce、内存可更正错误ce、降级后的不可更正错误d-uce,灾难性故障即ierr,降级后的灾难性故障d-ierr。
100.不可更正错误即uce、灾难性故障即ierr都可以引起系统宕机;内存可更正错误ce、降级后的不可更正错误d-uce,降级后的灾难性故障d-ierr不会引起系统宕机,区别是:内存可更正错误ce不受数量限制,即使有无限多可更正错误ce一样不会引起系统宕机,降级后的不可更正错误d-uce、降级后的灾难性故障d-ierr受到数量限制,当分别超过d-uce模块寄存器、d-ierr模块寄存器一定量值后,进行故障内存物理隔离,不会引起系统宕机。
101.如图2所示,本发明实施例提供内存报错导致宕机的问题处理方法,包括如下步骤:
102.s1:检测内存错误信息;
103.s2:判断错误类型;
104.当错误类型是内存可更正错误时,执行s3;内存错误类型为不可更正错误时,执行s4;内存错误类型为灾难性故障时,执行s8;
105.s3:发送故障信息给bmc,记录故障日志;执行步骤s10;
106.s4:将所述不可更正错误进行降级处理成降级后的不可更正错误;
107.s5:判断当前降级后的不可更正错误的数量是否达到降级后的不可更正错误模块寄存器阈值;
108.若否,执行s6;若是,执行步骤s7;
109.s6:发送内存降级错误日志给bmc;执行步骤s10;
110.s7:将故障内存做物理隔离处理。
111.s8:将所述灾难性故障进行降级处理成降级后的灾难性故障;
112.s9:判断降级后的灾难性故障的数量是否达到降级后的灾难性故障模块寄存器阈值;
113.若否,执行s6发送内存降级错误日志给bmc;
114.若是,执行s7将故障内存做隔离处理。
115.s10:bmc接收到所述日志后,根据故障内存地址得到内存位置,并输出提示信息。
116.处理过程如下:
117.bios检测到内存故障时,首先区分故障类型,对于可更正错误ce,不做降级处理,发送故障信息给bmc,记录故障日志,该错误类型不会引起系统宕机。当检测到内存错误类型为不可更正错误uce时,为不引起系统宕机,需要对uce进行降级处理,在uce降级为d-uce故障时,需要判断当前d-uce数量是否达到d-uce模块寄存器阈值a,当没有达到阈值时不会引起宕机,发送故障信息给bmc记录故障日志,当达到阈值a时,为不引起系统宕机,这时将该故障内存做物理隔离处理,即等同于没有配置该故障内存,进而不会引起宕机。当检测到内存错误类型为灾难性故障即ierr,该内存发生严重故障,将该故障降级为d-ierr,判断d-ierr故障数量是否达到d-ierr模块寄存器阈值b,当没有达到阈值b时,发送故障信息给bmc,记录故障日志,当达到阈值b时,为避免系统宕机,将该内存做隔离处理,其中d-ierr模块寄存器阈值b小于d-uce模块寄存器阈值a,即d-ierr类型的降级数量低。
118.本发明实施例提供内存报错导致宕机的问题处理方法在上述实施例中,发送日志
给bmc的步骤具体实现过程包括:
119.设置处理内存降级错误的程序在操作系统内核中的可纠正机器检查中断代码中;设置内存可纠正错误产生中断类型为可纠正机器检查中断;在可纠正机器检查中断处理中设置对机器校验库的数据解析功能;获取可纠正机器检查中断,通过处理内存降级错误的程序将内存错误进行处理;通过可纠正机器检查中断对机器校验库的数据解析功能获得具体的故障内存地址及错误类型;若错误类型为降级错误,执行步骤:发送内存降级错误日志给bmc;若错误类型为内存可更正错误,执行步骤:发送故障信息给bmc,记录故障日志。
120.上述实施例中具体将故障内存做隔离处理的步骤包括:
121.s71:获取故障内存的内存信息;
122.s72:发送内存隔离消息,所述隔离消息中携带有需要隔离的内存信息及隔离信息;
123.s73:对所述内存隔离消息中的需要隔离的内存信息及隔离信息进行分析;
124.s74:根据分析结果发送隔离指令,并根据所述隔离指令进行硬件配置,对所述故障内存进行隔离。
125.上述实施例中,根据内存错误信息获取故障内存的信息的步骤包括:
126.根据内存错误信息发送获取内存信息的指令;响应所述获取指令,确定记录有表征内存信息的预设字符串的第一地址;根据所述第一地址以及预设地址偏移信息生成预设地址范围;读取存储于预设地址范围内的预设字符串;根据所述预设字符串,确定所述获取指令针对的内存信息;基于获取指令将确定的内存信息返回。
127.内存故障形式分为:不可更正错误即uce、内存可更正错误ce、降级后的不可更正错误d-uce,灾难性故障即ierr,降级后的灾难性故障d-ierr。不可更正错误即uce、灾难性故障即ierr都可以引起系统宕机内存可更正错误ce、降级后的不可更正错误d-uce,降级后的灾难性故障d-ierr不会引起系统宕机。内存可更正错误ce不受数量限制,即使有无限多可更正错误ce一样不会引起系统宕机。降级后的不可更正错误d-uce、降级后的灾难性故障d-ierr受到数量限制,当分别超过d-uce模块寄存器、d-ierr模块寄存器一定量值后进行内存物理隔离,不引起系统宕机。
128.如图3所示,本发明技术方案提供内存报错导致宕机的问题处理装置,包括检测模块、类型判断模块、发送模块、降级处理模块、数量判断模块和隔离处理模块;
129.检测模块,用于检测内存错误并区分错误类型;
130.类型判断模块,用于判断错误类型是否是内存可更正错误;
131.发送模块,用于发送故障信息给bmc,记录故障日志;
132.降级处理模块,用于将当前的内存错误进行降级处理;用于当内存错误类型为不可更正错误时,将所述不可更正错误进行降级处理成降级后的不可更正错误;用于当内存错误类型为灾难性故障时,将所述灾难性故障进行降级处理成降级后的灾难性故障;
133.数量判断模块,用于判断降级后的内存错误的数量是否达到对应模块寄存器阈值;用于判断当前降级后的不可更正错误的数量是否达到降级后的不可更正错误模块寄存器阈值,若否触发发送模块发送内存降级错误日志给bmc;若是出发隔离模块将故障内存做物理隔离处理。用于判断降级后的灾难性故障的数量是否达到降级后的灾难性故障模块寄存器阈值若否触发发送模块发送内存降级错误日志给bmc;若是出发隔离模块将故障内存
做物理隔离处理。
134.隔离处理模块,用于将故障内存做物理隔离处理。
135.处理过程如下:
136.bios检测到内存故障时,首先区分故障类型,对于可更正错误ce,不做降级处理,发送故障信息给bmc,记录故障日志,该错误类型不会引起系统宕机。当检测到内存错误类型为不可更正错误uce时,为不引起系统宕机,需要对uce进行降级处理,在uce降级为d-uce故障时,需要判断当前d-uce数量是否达到d-uce模块寄存器阈值a,当没有达到阈值时不会引起宕机,发送故障信息给bmc记录故障日志,当达到阈值a时,为不引起系统宕机,这时将该故障内存做物理隔离处理,即等同于没有配置该故障内存,进而不会引起宕机。当检测到内存错误类型为灾难性故障即ierr,该内存发生严重故障,将该故障降级为d-ierr,判断d-ierr故障数量是否达到d-ierr模块寄存器阈值b,当没有达到阈值b时,发送故障信息给bmc,记录故障日志,当达到阈值b时,为避免系统宕机,将该内存做隔离处理,其中d-ierr模块寄存器阈值b小于d-uce模块寄存器阈值a,即d-ierr类型的降级数量低。内存在产生不可更正错误uce、或者灾难性故障错误ierr,bios做分级处理,采用故障内存隔离和故障降级相结合的方式,隔离单个故障内存,主要目的是使系统不宕机,不影响正常业务运行,但是同时可以清晰记载内存日志情况,方便运维及时处理。
137.在有些实施例中,该装置还包括设置检查模块,所述设置检查模块包括第一设置单元、第二设置单元、第三设置单元、处理单元和信息获取判断单元;
138.第一设置单元,用于设置处理内存降级错误的程序在操作系统内核中的可纠正机器检查中断代码中;
139.第二设置单元,用于设置内存可纠正错误产生中断类型为可纠正机器检查中断;
140.第三设置单元,用于在可纠正机器检查中断处理中设置对机器校验库的数据解析功能;
141.处理单元,用于获取可纠正机器检查中断,通过处理内存降级错误的程序将内存错误进行处理;
142.信息获取判断单元,用于通过可纠正机器检查中断对机器校验库的数据解析功能获得具体的故障内存地址及错误类型;若错误类型为降级错误触发发送模块发送内存降级错误日志给bmc;若错误类型为内存可更正错误,触发发送模块发送故障信息给bmc,记录故障日志。bmc接收到所述日志后,根据故障内存地址得到内存位置,并输出提示信息。
143.在有些实施例中,隔离处理模块包括内存信息获取单元、隔离消息发送单元、隔离消息分析单元、隔离指令发送单元和隔离处理单元;
144.内存信息获取单元,用于获取故障内存的内存信息;
145.隔离消息发送单元,用于发送内存隔离消息,所述隔离消息中携带有需要隔离的内存信息及隔离信息;
146.隔离消息分析单元,用于对所述内存隔离消息中的需要隔离的内存信息及隔离信息进行分析;
147.隔离指令发送单元,用于根据分析结果发送隔离指令;
148.隔离处理单元,用于根据所述隔离指令进行硬件配置,对所述故障内存进行隔离。
149.在有些实施例中,内存信息获取单元包括指令发送子模块、指令响应子模块、地址
范围获取子模块、字符串获取子模块和内存信息获取子模块;
150.指令发送子模块,用于根据内存错误信息发送获取内存信息的指令;
151.指令响应子模块,用于响应所述获取指令,确定记录有表征内存信息的预设字符串的第一地址;
152.地址范围获取子模块,用于根据所述第一地址以及预设地址偏移信息生成预设地址范围;
153.字符串获取子模块,用于读取存储于预设地址范围内的预设字符串;
154.内存信息获取子模块,用于根据所述预设字符串,确定所述获取指令针对的内存信息,并基于获取指令将确定的内存信息返回。
155.如图4所示,本发明实施例还提供一种电子设备,所述电子设备包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信。通信总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:s1:检测内存错误信息;s2:判断错误类型;当错误类型是内存可更正错误时,执行s3;内存错误类型为不可更正错误时,执行s4;内存错误类型为灾难性故障时,执行s8;s3:发送故障信息给bmc,记录故障日志;执行步骤s10;
156.s4:将所述不可更正错误进行降级处理成降级后的不可更正错误;s5:判断当前降级后的不可更正错误的数量是否达到降级后的不可更正错误模块寄存器阈值;若否,执行s6;若是,执行步骤s7;s6:发送内存降级错误日志给bmc;执行步骤s10;s7:将故障内存做物理隔离处理。s8:将所述灾难性故障进行降级处理成降级后的灾难性故障;s9:判断降级后的灾难性故障的数量是否达到降级后的灾难性故障模块寄存器阈值;若否,执行s6发送内存降级错误日志给bmc;若是,执行s7将故障内存做隔离处理。s10:bmc接收到所述日志后,根据故障内存地址得到内存位置,并输出提示信息。
157.此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
158.本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述方法实施例所提供的方法,例如包括:s1:检测内存错误信息;s2:判断错误类型;当错误类型是内存可更正错误时,执行s3;内存错误类型为不可更正错误时,执行s4;内存错误类型为灾难性故障时,执行s8;s3:发送故障信息给bmc,记录故障日志;执行步骤s10;s4:将所述不可更正错误进行降级处理成降级后的不可更正错误;s5:判断当前降级后的不可更正错误的数量是否达到降级后的不可更正错误模块寄存器阈值;若否,执行s6;若是,执行步骤s7;s6:发送内存降级错误日志给bmc;执行步骤s10;s7:将故障内存做物理隔离处理。s8:将所述灾难性故障进行降级处理成降级后的灾难性故障;s9:判断降级后的灾难性故障的数量是否达到降级后的灾难性故障模块
寄存器阈值;若否,执行s6发送内存降级错误日志给bmc;若是,执行s7将故障内存做隔离处理。s10:bmc接收到所述日志后,根据故障内存地址得到内存位置,并输出提示信息。
159.作为本发明的内存报错导致宕机的问题处理方法、装置、设备及介质是结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
160.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
技术特征:
1.内存报错导致宕机的问题处理方法,其特征在于,包括如下步骤:检测内存错误并区分错误类型;判断错误类型是否是内存可更正错误;若是,发送故障信息给bmc,记录故障日志;否则,将当前的内存错误进行降级处理;判断降级后的内存错误的数量是否达到对应模块寄存器阈值;若是,将故障内存做物理隔离处理;否则,发送内存降级错误日志给bmc。2.根据权利要求1所述的内存报错导致宕机的问题处理方法,其特征在于,该方法包括:当内存错误类型为不可更正错误时,将所述不可更正错误进行降级处理成降级后的不可更正错误;判断当前降级后的不可更正错误的数量是否达到降级后的不可更正错误模块寄存器阈值;若否,执行步骤:发送内存降级错误日志给bmc;若是,执行步骤:将故障内存做物理隔离处理。3.根据权利要求2所述的内存报错导致宕机的问题处理方法,其特征在于,该方法还包括:当内存错误类型为灾难性故障时,将所述灾难性故障进行降级处理成降级后的灾难性故障;判断降级后的灾难性故障的数量是否达到降级后的灾难性故障模块寄存器阈值;若否,执行步骤:发送内存降级错误日志给bmc;若是,执行步骤:将故障内存做隔离处理。4.根据权利要求1所述的内存报错导致宕机的问题处理方法,其特征在于,该方法还包括:设置处理内存降级错误的程序在操作系统内核中的可纠正机器检查中断代码中;设置内存可纠正错误产生中断类型为可纠正机器检查中断;在可纠正机器检查中断处理中设置对机器校验库的数据解析功能;获取可纠正机器检查中断,通过处理内存降级错误的程序将内存错误进行处理;通过可纠正机器检查中断对机器校验库的数据解析功能获得具体的故障内存地址及错误类型;若错误类型为降级错误,执行步骤:发送内存降级错误日志给bmc;若错误类型为内存可更正错误,执行步骤:发送故障信息给bmc,记录故障日志。5.根据权利要求3或4所述的内存报错导致宕机的问题处理方法,其特征在于,发送内存降级错误日志给bmc的步骤之后包括:bmc接收到所述日志后,根据故障内存地址得到内存位置,并输出提示信息。6.根据权利要求1所述的内存报错导致宕机的问题处理方法,其特征在于,将故障内存做隔离处理的步骤包括:获取故障内存的内存信息;
发送内存隔离消息,所述隔离消息中携带有需要隔离的内存信息及隔离信息;对所述内存隔离消息中的需要隔离的内存信息及隔离信息进行分析;根据分析结果发送隔离指令,并根据所述隔离指令进行硬件配置,对所述故障内存进行隔离。7.根据权利要求6所述的内存报错导致宕机的问题处理方法,其特征在于,根据内存错误信息获取故障内存的信息的步骤包括:根据内存错误信息发送获取内存信息的指令;响应所述获取指令,确定记录有表征内存信息的预设字符串的第一地址;根据所述第一地址以及预设地址偏移信息生成预设地址范围;读取存储于预设地址范围内的预设字符串;根据所述预设字符串,确定所述获取指令针对的内存信息;基于获取指令将确定的内存信息返回。8.内存报错导致宕机的问题处理装置,其特征在于,包括检测模块、类型判断模块、发送模块、降级处理模块、数量判断模块和隔离处理模块;检测模块,用于检测内存错误并区分错误类型;类型判断模块,用于判断错误类型是否是内存可更正错误;发送模块,用于发送故障信息给bmc,记录故障日志;降级处理模块,用于将当前的内存错误进行降级处理;数量判断模块,用于判断降级后的内存错误的数量是否达到对应模块寄存器阈值;隔离处理模块,用于将故障内存做物理隔离处理。9.一种电子设备,其特征在于,所述电子设备包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;存储器存储有可被至少一个处理器执行的计算机程序指令,所述计算机程序指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如权利要求1至7中任一项权利要求所述的内存报错导致宕机的问题处理方法。10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如权利要求1至7任一项权利要求所述的内存报错导致宕机的问题处理方法。
技术总结
本发明属于内存测试技术领域,具体提供内存报错导致宕机的问题处理方法、装置、设备及介质,所述方法包括如下步骤:检测内存错误并区分错误类型;判断错误类型是否是内存可更正错误;若是,发送故障信息给BMC,记录故障日志;否则,将当前的内存错误进行降级处理;判断降级后的内存错误的数量是否达到对应模块寄存器阈值;若是,将故障内存做物理隔离处理;否则,发送内存降级错误日志给BMC。采用故障内存隔离和故障降级相结合的方式,隔离单个故障内存,主要目的是使系统不宕机,不影响正常业务运行,但是同时可以清晰记载内存日志情况,方便运维及时处理。便运维及时处理。便运维及时处理。
技术研发人员:苏长文
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2023.07.21
技术公布日:2023/10/19
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
航空商城 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/