一种内存故障处理方法、装置、设备及介质与流程
未命名
10-09
阅读:144
评论:0

1.本发明涉及服务器技术领域,特别是涉及一种内存故障处理方法、装置、设备及介质。
背景技术:
2.目前主流的服务器是intel x86架构系列。随着时代的发展需要,服务器设备的更新换代提速,迫切需要一种新的服务器架构。因此,进阶精简指令集机器(advanced risc machine,arm)架构应运而生。近年来arm架构的服务器得到迅猛发展。
3.然而,目前arm服务器相对于已经成熟的intel x86服务器的生态环境还存在一定差距;在arm服务器使用类似于x86服务器的内存隔离技术后,可能会发生服务器内存故障,会导致服务器无法启动或者宕机的问题。
4.鉴于上述问题,如何解决服务器在执行内存隔离时发生内存故障导致服务器无法正常启动,是本领域技术人员亟待解决的问题。
技术实现要素:
5.本发明的目的是提供一种内存故障处理方法、装置、设备及介质,以解决服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问题。
6.为解决上述技术问题,本发明提供一种内存故障处理方法,包括:
7.当服务器上电后检测到存在内存故障时,获取所述服务器内全部内存的整体内存信息;其中,所述整体内存信息包括全部所述内存的数量和总容量;
8.获取所述服务器内故障内存的故障内存信息;其中,所述故障内存信息包括所述故障内存的数量和所述故障内存的容量;
9.根据所述整体内存信息判断所述故障内存信息是否满足预设条件;
10.若否,则跳过运行所述故障内存,根据当前的内存初始化逻辑初始化其余所述内存,以重启所述服务器。
11.一方面,所述根据所述整体内存信息判断所述故障内存信息是否满足预设条件包括:
12.判断是否所述故障内存的数量与全部所述内存的数量的比值不大于第一阈值,且所述故障内存的容量与全部所述内存的容量的比值不大于第二阈值;
13.若否,则认为不满足所述预设条件,进入所述跳过运行所述故障内存的步骤。
14.另一方面,在所述跳过运行所述故障内存,根据当前的内存初始化逻辑初始化其余所述内存之后,还包括:
15.根据全部所述内存的总容量和所述故障内存的容量获取其他所述内存的容量;其中,其他所述内存为全部所述内存中除所述故障内存外的内存;
16.根据其他所述内存的数量和其他所述内存的容量获取所述服务器的系统容量;
17.将所述服务器的所述系统容量分配至所述服务器的系统。
18.另一方面,还包括:
19.判断是否所述故障内存的数量与全部所述内存的数量的比值不大于第三阈值,且所述故障内存的容量与全部所述内存的容量的比值不大于第四阈值;
20.若是,则更改当前的所述内存初始化逻辑;
21.其中,所述第三阈值小于所述第一阈值,所述第四阈值小于所述第二阈值。
22.另一方面,在所述更改当前的所述内存初始化逻辑之后,还包括:
23.获取所述服务器的重启前的内存容量分配比;
24.控制所述服务器重启;
25.获取所述服务器重启后的所述内存容量分配比;
26.判断所述服务器重启后的所述内存容量分配比是否不大于所述服务器重启前的所述内存容量分配比;
27.若是,则对各所述内存的容量进行内存虚拟扩容;
28.对所述服务器的中央处理器进行超频处理;
29.根据所述服务器的重启前的所述内存容量分配比对内存虚拟扩容之后的各所述内存的容量进行分配;
30.若否,则根据所述服务器重启后的所述内存容量分配比对所述服务器的系统容量进行容量部署和调控。
31.另一方面,还包括:
32.判断是否所述故障内存的数量与全部所述内存的数量的比值不大于第五阈值,且所述故障内存的容量与全部所述内存的容量的比值不大于第六阈值;
33.若否,则确认所述故障内存占比超限,发送提示信号至所述服务器的基板管理控制器;
34.其中,所述第五阈值大于所述第一阈值,所述第六阈值大于所述第二阈值。
35.另一方面,在重启所述服务器之后,还包括:
36.输出所述服务器重启成功的信息;
37.更新所述服务器的运行日志,以记录所述服务器重启的原因。
38.为解决上述技术问题,本发明还提供一种内存故障处理装置,包括:
39.第一获取模块,用于当服务器上电后检测到存在内存故障时,获取所述服务器内全部内存的整体内存信息;其中,所述整体内存信息包括全部所述内存的数量和总容量;
40.第二获取模块,用于获取所述服务器内故障内存的故障内存信息;其中,所述故障内存信息包括所述故障内存的数量和所述故障内存的容量;
41.判断模块,用于根据所述整体内存信息判断所述故障内存信息是否满足预设条件;若否,则触发初始化模块;
42.所述初始化模块,用于跳过运行所述故障内存,根据当前的内存初始化逻辑初始化其余所述内存,以重启所述服务器。
43.为解决上述技术问题,本发明还提供一种内存故障处理设备,包括:
44.存储器,用于存储计算机程序;
45.处理器,用于执行所述计算机程序时实现上述的内存故障处理方法的步骤。
46.为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读
存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述的内存故障处理方法的步骤。
47.本发明所提供的内存故障处理方法,当服务器上电后检测到存在内存故障时,通过获取服务器内全部内存的整体内存信息;其中,整体内存信息包括全部内存的数量和总容量;获取服务器内故障内存的故障内存信息;其中,故障内存信息包括故障内存的数量和故障内存的容量;根据整体内存信息判断故障内存信息是否满足预设条件;若否,则跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。由此可知,上述方案在服务器检测到内存故障时,通过获取服务器内全部内存的整体内存信息和故障内存的故障内存信息,以预设条件为基准确定故障内存对服务器启动的影响情况;具体在不满足预设条件时将故障内存跳过运行,避免其对服务器运行产生影响,从而使服务器能够正常重启,解决了服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问题。
48.此外,本发明还提供了一种内存故障处理装置、设备及介质,效果同上。
附图说明
49.为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
50.图1为本发明实施例提供的一种内存故障处理方法的流程图;
51.图2为本发明实施例提供的一种内存故障处理装置的示意图;
52.图3为本发明实施例提供的一种内存故障处理设备的示意图。
具体实施方式
53.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
54.本发明的核心是提供一种内存故障处理方法、装置、设备及介质,以解决服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问。
55.为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
56.目前,主流的服务器虽然还是intel x86架构系列为主,但是intel x86架构的服务器近些年的发展一直停滞不前。由于时代发展的需要,服务器设备更新换代速度的加快,当前迫切需要一种新形态的服务器架构,因此,arm架构的服务器应运而生。
57.近年来,arm架构的服务器得到迅猛发展。但是arm架构服务器相对于目前已经成熟intel x86服务器的生态环境还存在一定差距。例如,arm架构的服务器在使用类似于intel x86服务器的内存隔离技术(内存隔离技术是一种安全机制,它通过将不同进程或用户的内存空间隔离开来,使系统在运行过程中更加安全可靠)时,可能会出现故障内存训练失败(training fail),即内存故障的情况,这将导致服务器无法启动。因此,为了解决上述问题,本发明提供了一种内存故障处理方法,旨在解决服务器在执行内存隔离时发生内存
故障导致服务器无法正常启动的问题。可以理解的是,本发明所述提供的方法主要应用于服务器中,具体为使用内存隔离技术的服务器,包括但不限于使用内存隔离技术的arm服务器。
58.图1为本发明实施例提供的一种内存故障处理方法的流程图。如图1所示,方法包括:
59.s10:当服务器上电后检测到存在内存故障时,获取服务器内全部内存的整体内存信息。
60.其中,整体内存信息包括全部内存的数量和总容量。
61.具体地,当使用内存隔离技术的arm架构的服务器(例如ft2000+服务器)上电开机时,服务器检测自身是否出现故障内存training fail,即判断是否出现内存故障。当服务器上电后检测到存在内存故障时,获取服务器内全部内存的整体内存信息。
62.可以理解的是,在服务器内一般存在多个内存条,各内存的容量大小可以为相同大小也可以为不同大小。获取服务器内全部内存的整体内存信息,也就是将全部内存当做一个整体,获取内存整体的内存信息。其中,整体内存信息包括全部内存的数量和总容量。需要注意的是,全部内存的总容量即为服务器中各内存容量之和。
63.s11:获取服务器内故障内存的故障内存信息。
64.其中,故障内存信息包括故障内存的数量和故障内存的容量。
65.可以理解的是,当服务器检测到出现内存故障的情况时,能够将故障内存定位。进一步需要获取服务器内故障内存的故障内存信息。其中,故障内存信息包括故障内存的数量和故障内存的容量。
66.需要注意的是,故障内存的数量可以为一个也可以为多个,在本实施例中不做限制,根据具体的实施情况而定。因此,当故障内存的数量为多个时,在获取的故障内存信息中,故障内存的容量具体为各故障内存的容量之和。
67.s12:根据整体内存信息判断故障内存信息是否满足预设条件;若否,则进入步骤s13。若是,则进入步骤s14。
68.s13:跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。
69.s14:重启服务器。
70.在分别获取服务器全部内存的整体内存信息以及故障内存的故障内存信息之后,根据整体内存信息判断故障内存信息是否满足预设条件。可以理解的是,本实施例中的预设条件为判断基准,用以确定故障内存对服务器启动的具体影响情况。本实施例中对于预设条件不做限制,可根据内存数量设置具体的条件限制,还可根据内存容量设置具体的条件限制,根据具体的实施情况而定。
71.当根据整体内存信息确认故障内存信息不满足预设条件时,则认为故障内存对服务器存在较大的影响,此时跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器,从而完成服务器的正常启动。而当根据整体内存信息确认故障内存信息满足预设条件时,则认为故障内存的影响较小,可尝试直接重启服务器。
72.本实施例中,当服务器上电后检测到存在内存故障时,通过获取服务器内全部内存的整体内存信息;其中,整体内存信息包括全部内存的数量和总容量;获取服务器内故障
内存的故障内存信息;其中,故障内存信息包括故障内存的数量和故障内存的容量;根据整体内存信息判断故障内存信息是否满足预设条件;若否,则跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。由此可知,上述方案在服务器检测到内存故障时,通过获取服务器内全部内存的整体内存信息和故障内存的故障内存信息,以预设条件为基准确定故障内存对服务器启动的影响情况;具体在不满足预设条件时将故障内存跳过运行,避免其对服务器运行产生影响,从而使服务器能够正常重启,解决了服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问题。
73.为了判断故障内存的故障内存信息是否满足预设条件,在上述实施例的基础上,作为一种优选的实施例,根据整体内存信息判断故障内存信息是否满足预设条件包括:
74.s120:判断是否故障内存的数量与全部内存的数量的比值不大于第一阈值,且故障内存的容量与全部内存的容量的比值不大于第二阈值;若否,则认为不满足预设条件,进入步骤s13。
75.在具体实施中,分别对应比较全部内存的数量和总容量以及故障内存的数量和容量。具体判断是否故障内存的数量与全部内存的数量的比值不大于第一阈值,且故障内存的容量与全部内存的容量的比值不大于第二阈值。需要注意的是,本实施例中对于第一阈值和第二阈值均不做限制,根据具体的实施情况而定。此外,由于第一阈值为数量阈值,第二阈值为容量阈值,因此第一阈值和第二阈值之间不存在大小关系。
76.当确认故障内存的数量与全部内存的数量的比值大于第一阈值,或确认故障内存的容量与全部内存的容量的比值大于第二阈值,或确认故障内存的数量与全部内存的数量的比值大于第一阈值且故障内存的容量与全部内存的容量的比值大于第二阈值时,认为不满足预设条件,此时故障内存对服务器存在较大影响,需要进入步骤s13以跳过故障内存。
77.本实施例中,基于对应比较全部内存的数量和总容量以及故障内存的数量和容量,实现了对故障内存信息是否满足预设条件的判断,提高了判断的准确性。
78.当跳过故障内存,使用当前的内存初始化逻辑初始化其余内存时,故障内存虽然被跳过,但其内存容量还被算作整体的系统容量中。如果按照原来的初始化逻辑,对于系统容量的分配已经无法满足同一项目部署,在服务器内存部署时会出现问题,因此需要进一步对系统容量重新分配。具体地,在上述实施例的基础上,作为一种优选的实施例,在跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存之后,还包括:
79.s15:根据全部内存的总容量和故障内存的容量获取其他内存的容量。
80.其中,其他内存为全部内存中除故障内存外的内存。
81.s16:根据其他内存的数量和其他内存的容量获取服务器的系统容量。
82.s17:将服务器的系统容量分配至服务器的系统。
83.在具体实施中,根据全部内存的总容量和故障内存的容量获取其他内存的容量。可以理解的是,其他内存为全部内存中除故障内存外的内存,其他内存的容量即为全部内存中剩余能够使用的各内存的容量。进一步根据其他内存的数量和其他内存的容量得到当前能够使用的剩余内存容量总和,基于剩余内存容量总和划分能够使服务器满足同一项目部署下的系统容量,最后将系统容量分配至服务器的系统,以尽可能满足系统统一部署的需求。
84.本实施例中,通过根据全部内存的总容量和故障内存的容量获取其他内存的容
量,依此进一步获取服务器的系统容量,将服务器的系统容量分配至服务器的系统,满足了服务器系统的统一部署的需求。
85.为了使服务器内存的性能达到较高的使用性能,在上述实施例的基础上,作为一种优选的实施例,方法还包括:
86.s18:判断是否故障内存的数量与全部内存的数量的比值不大于第三阈值,且故障内存的容量与全部内存的容量的比值不大于第四阈值;若是,则进入步骤s19。
87.s19:更改当前的内存初始化逻辑。
88.其中,第三阈值小于第一阈值,第四阈值小于第二阈值。
89.在具体实施中,判断是否故障内存的数量与全部内存的数量的比值不大于第三阈值,且故障内存的容量与全部内存的容量的比值不大于第四阈值。本实施例中对于第三阈值和第四阈值均不做限制,根据具体的实施情况而定。由于第三阈值为数量阈值,第四阈值为容量阈值,因此第三阈值和第四阈值之间不存在大小关系。需要注意的是,第三阈值小于第一阈值,第四阈值小于第二阈值。
90.当确认故障内存的数量与全部内存的数量的比值不大于第三阈值,且故障内存的容量与全部内存的容量的比值不大于第四阈值时,认为此时故障内存对服务器影响较小,可以更改当前的内存初始化逻辑,从而使服务器内存的性能达到较高的使用性能。
91.在具体实施中,更改内存初始化逻辑可能会小概率地引起一些问题。例如在服务器重启后,服务器系统可用的内存容量与服务器上次启动的内存容量不一致,这会导致服务器性能测试或其他测试无法满足内存容量需求。为避免此问题出现,在上述实施例的基础上,作为一种优选的实施例,在更改当前的内存初始化逻辑之后,还包括:
92.s20:获取服务器的重启前的内存容量分配比。
93.s21:控制服务器重启。
94.s22:获取服务器重启后的内存容量分配比。
95.s23:判断服务器重启后的内存容量分配比是否不大于服务器重启前的内存容量分配比;若是,则进入步骤s24;若否,则进入步骤s27。
96.s24:对各内存的容量进行内存虚拟扩容。
97.s25:对服务器的中央处理器进行超频处理。
98.s26:根据服务器的重启前的内存容量分配比对内存虚拟扩容之后的各内存的容量进行分配。
99.s27:根据服务器重启后的内存容量分配比对服务器的系统容量进行容量部署和调控。
100.首先通过服务器基本输入输出系统(basic input output system,bios)固件获取服务器的重启前的内存容量分配比。控制服务器重启,并记录服务器重启后的内存容量分配比。进一步以重启后的内存容量分配情况为基点,判断服务器重启后的内存容量分配比是否不大于服务器重启前的内存容量分配比。
101.若确认服务器重启后的内存容量分配比不大于服务器重启前的内存容量分配比,为了满足对缺少的内存容量的需求,需要对各内存的容量进行内存虚拟扩容,同时对服务器的中央处理器进行超频处理,以适应内存的虚拟扩容。最后根据服务器的重启前的内存容量分配比对内存虚拟扩容之后的各内存的容量进行分配,以保持合理的内存分配占比。
102.若确认服务器重启后的内存容量分配比大于服务器重启前的内存容量分配比,为了保持重启前后内存容量分配比的一致性,需要统计出服务器重启后的内存容量分配比,并根据服务器重启后的内存容量分配比对服务器的系统容量进行整体容量部署和调控。
103.本实施例中,通过记录服务器重启前后的内存分配比,根据两者的大小情况采取不同的内存分配方式,满足了服务器性能测试或其他测试对内存容量的需求。
104.当故障内存严重影响服务器运行时,为了提示服务器及用户,在上述实施例的基础上,作为一种优选的实施例,还包括:
105.s28:判断是否故障内存的数量与全部内存的数量的比值不大于第五阈值,且故障内存的容量与全部内存的容量的比值不大于第六阈值;若否,则进入步骤s29。
106.s29:确认故障内存占比超限,发送提示信号至服务器的基板管理控制器。
107.其中,第五阈值大于第一阈值,第六阈值大于第二阈值。
108.在具体实施中,判断是否故障内存的数量与全部内存的数量的比值不大于第五阈值,且故障内存的容量与全部内存的容量的比值不大于第六阈值。本实施例中对于第五阈值和第六阈值均不做限制,根据具体的实施情况而定。由于第五阈值为数量阈值,第六阈值为容量阈值,因此第五阈值和第六阈值之间不存在大小关系。需要注意的是,第五阈值大于第一阈值,第六阈值大于第二阈值。
109.若确认故障内存的数量与全部内存的数量的比值大于第五阈值,或确认故障内存的容量与全部内存的容量的比值大于第六阈值,或确认故障内存的数量与全部内存的数量的比值大于第五阈值且故障内存的容量与全部内存的容量的比值大于第六阈值,则认为故障内存占比超限,将严重影响服务器运行,无法匹配服务器运行生态。此时需要发送提示信号至服务器的基板管理控制器(baseboard management controller,bmc),从而使系统与用户获知内存故障情况,提醒必须更换故障内存,避免其造成更大影响。
110.此外,为了使用户能够及时获取服务器重启及其相关信息,在上述实施例的基础上,作为一种优选的实施例,在重启服务器之后,还包括:
111.s30:输出服务器重启成功的信息。
112.s31:更新服务器的运行日志,以记录服务器重启的原因。
113.具体在重启服务器之后,输出服务器重启成功的信息。本实施例中对于输出信息的具体形式不做限制,可为音频提示信息,还可为灯光提示信息,根据具体的实施情况而定。进一步更新服务器的运行日志,以记录服务器重启的原因,从而使用户能够在日志中查找到服务器重启的原因,以对服务器的运行情况做出准确地判断。
114.在上述实施例中,对于内存故障处理方法进行了详细描述,本发明还提供内存故障处理装置对应的实施例。
115.图2为本发明实施例提供的一种内存故障处理装置的示意图。如图2所示,内存故障处理装置包括:
116.第一获取模块10,用于当服务器上电后检测到存在内存故障时,获取服务器内全部内存的整体内存信息;其中,整体内存信息包括全部内存的数量和总容量。
117.第二获取模块11,用于获取服务器内故障内存的故障内存信息;其中,故障内存信息包括故障内存的数量和故障内存的容量。
118.判断模块12,用于根据整体内存信息判断故障内存信息是否满足预设条件;若否,
则触发初始化模块。
119.初始化模块13,用于跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。
120.作为一种优选的实施例,判断模块包括:
121.第一阈值判断模块,用于判断是否故障内存的数量与全部内存的数量的比值不大于第一阈值,且故障内存的容量与全部内存的容量的比值不大于第二阈值;若否,则认为不满足预设条件,触发初始化模块。
122.作为一种优选的实施例,还包括:
123.第三获取模块,用于在跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存之后,根据全部内存的总容量和故障内存的容量获取其他内存的容量;其中,其他内存为全部内存中除故障内存外的内存;
124.第四获取模块,用于根据其他内存的数量和其他内存的容量获取服务器的系统容量;
125.第一分配模块,用于将服务器的系统容量分配至服务器的系统。
126.作为一种优选的实施例,还包括:
127.第二阈值判断模块,用于判断是否故障内存的数量与全部内存的数量的比值不大于第三阈值,且故障内存的容量与全部内存的容量的比值不大于第四阈值;若是,则触发更改模块;
128.更改模块,用于更改当前的内存初始化逻辑;
129.其中,第三阈值小于第一阈值,第四阈值小于第二阈值。
130.作为一种优选的实施例,还包括:
131.第五获取模块,用于在更改当前的内存初始化逻辑之后,获取服务器的重启前的内存容量分配比;
132.重启模块,用于控制服务器重启;
133.第六获取模块,用于获取服务器重启后的内存容量分配比;
134.内存容量分配比判断模块,用于判断服务器重启后的内存容量分配比是否不大于服务器重启前的内存容量分配比;若是,则触发扩容模块;若否,则触发部署模块;
135.扩容模块,用于对各内存的容量进行内存虚拟扩容;
136.超频模块,用于对服务器的中央处理器进行超频处理;
137.第二分配模块,用于根据服务器的重启前的内存容量分配比对内存虚拟扩容之后的各内存的容量进行分配;
138.部署模块,用于根据服务器重启后的内存容量分配比对服务器的系统容量进行容量部署和调控。
139.作为一种优选的实施例,还包括:
140.第三阈值判断模块,用于判断是否故障内存的数量与全部内存的数量的比值不大于第五阈值,且故障内存的容量与全部内存的容量的比值不大于第六阈值;若否,则触发确认发送模块;
141.确认发送模块,用于确认故障内存占比超限,发送提示信号至服务器的基板管理控制器;
142.其中,第五阈值大于第一阈值,第六阈值大于第二阈值。
143.作为一种优选的实施例,还包括:
144.输出模块,用于在重启服务器之后,输出服务器重启成功的信息;
145.日志更新模块,用于更新服务器的运行日志,以记录服务器重启的原因。
146.本实施例中,内存故障处理装置包括第一获取模块、第二获取模块、判断模块和初始化模块。内存故障处理装置在运行时能够实现上述内存故障处理方法的全部步骤。当服务器上电后检测到存在内存故障时,通过获取服务器内全部内存的整体内存信息;其中,整体内存信息包括全部内存的数量和总容量;获取服务器内故障内存的故障内存信息;其中,故障内存信息包括故障内存的数量和故障内存的容量;根据整体内存信息判断故障内存信息是否满足预设条件;若否,则跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。由此可知,上述方案在服务器检测到内存故障时,通过获取服务器内全部内存的整体内存信息和故障内存的故障内存信息,以预设条件为基准确定故障内存对服务器启动的影响情况;具体在不满足预设条件时将故障内存跳过运行,避免其对服务器运行产生影响,从而使服务器能够正常重启,解决了服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问题。
147.图3为本发明实施例提供的一种内存故障处理设备的示意图。如图3所示,内存故障处理设备包括:
148.存储器20,用于存储计算机程序。
149.处理器21,用于执行计算机程序时实现如上述实施例中所提到的内存故障处理方法的步骤。
150.本实施例提供的内存故障处理设备可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
151.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以在集成有图形处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
152.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的内存故障处理方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于内存故障处理方法涉及到的数据。
153.在一些实施例中,内存故障处理设备还可包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
154.本领域技术人员可以理解,图3中示出的结构并不构成对内存故障处理设备的限定,可以包括比图示更多或更少的组件。
155.本实施例中,内存故障处理设备包括存储器和处理器。存储器用于存储计算机程序。处理器用于执行计算机程序时实现如上述实施例中所提到的内存故障处理方法的步骤。当服务器上电后检测到存在内存故障时,通过获取服务器内全部内存的整体内存信息;其中,整体内存信息包括全部内存的数量和总容量;获取服务器内故障内存的故障内存信息;其中,故障内存信息包括故障内存的数量和故障内存的容量;根据整体内存信息判断故障内存信息是否满足预设条件;若否,则跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。由此可知,上述方案在服务器检测到内存故障时,通过获取服务器内全部内存的整体内存信息和故障内存的故障内存信息,以预设条件为基准确定故障内存对服务器启动的影响情况;具体在不满足预设条件时将故障内存跳过运行,避免其对服务器运行产生影响,从而使服务器能够正常重启,解决了服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问题。
156.最后,本发明还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
157.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
158.本实施例中,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。当服务器上电后检测到存在内存故障时,通过获取服务器内全部内存的整体内存信息;其中,整体内存信息包括全部内存的数量和总容量;获取服务器内故障内存的故障内存信息;其中,故障内存信息包括故障内存的数量和故障内存的容量;根据整体内存信息判断故障内存信息是否满足预设条件;若否,则跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。由此可知,上述方案在服务器检测到内存故障时,通过获取服务器内全部内存的整体内存信息和故障内存的故障内存信息,以预设条件为基准确定故障内存对服务器启动的影响情况;具体在不满足预设条件时将故障内存跳过运行,避免其对服务器运行产生影响,从而使服务器能够正常重启,解决了服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问题。
159.以上对本发明所提供的一种内存故障处理方法、装置、设备及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
160.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
技术特征:
1.一种内存故障处理方法,其特征在于,包括:当服务器上电后检测到存在内存故障时,获取所述服务器内全部内存的整体内存信息;其中,所述整体内存信息包括全部所述内存的数量和总容量;获取所述服务器内故障内存的故障内存信息;其中,所述故障内存信息包括所述故障内存的数量和所述故障内存的容量;根据所述整体内存信息判断所述故障内存信息是否满足预设条件;若否,则跳过运行所述故障内存,根据当前的内存初始化逻辑初始化其余所述内存,以重启所述服务器。2.根据权利要求1所述的内存故障处理方法,其特征在于,所述根据所述整体内存信息判断所述故障内存信息是否满足预设条件包括:判断是否所述故障内存的数量与全部所述内存的数量的比值不大于第一阈值,且所述故障内存的容量与全部所述内存的容量的比值不大于第二阈值;若否,则认为不满足所述预设条件,进入所述跳过运行所述故障内存的步骤。3.根据权利要求1所述的内存故障处理方法,其特征在于,在所述跳过运行所述故障内存,根据当前的内存初始化逻辑初始化其余所述内存之后,还包括:根据全部所述内存的总容量和所述故障内存的容量获取其他所述内存的容量;其中,其他所述内存为全部所述内存中除所述故障内存外的内存;根据其他所述内存的数量和其他所述内存的容量获取所述服务器的系统容量;将所述服务器的所述系统容量分配至所述服务器的系统。4.根据权利要求2所述的内存故障处理方法,其特征在于,还包括:判断是否所述故障内存的数量与全部所述内存的数量的比值不大于第三阈值,且所述故障内存的容量与全部所述内存的容量的比值不大于第四阈值;若是,则更改当前的所述内存初始化逻辑;其中,所述第三阈值小于所述第一阈值,所述第四阈值小于所述第二阈值。5.根据权利要求4所述的内存故障处理方法,其特征在于,在所述更改当前的所述内存初始化逻辑之后,还包括:获取所述服务器的重启前的内存容量分配比;控制所述服务器重启;获取所述服务器重启后的所述内存容量分配比;判断所述服务器重启后的所述内存容量分配比是否不大于所述服务器重启前的所述内存容量分配比;若是,则对各所述内存的容量进行内存虚拟扩容;对所述服务器的中央处理器进行超频处理;根据所述服务器的重启前的所述内存容量分配比对内存虚拟扩容之后的各所述内存的容量进行分配;若否,则根据所述服务器重启后的所述内存容量分配比对所述服务器的系统容量进行容量部署和调控。6.根据权利要求4或5所述的内存故障处理方法,其特征在于,还包括:判断是否所述故障内存的数量与全部所述内存的数量的比值不大于第五阈值,且所述
故障内存的容量与全部所述内存的容量的比值不大于第六阈值;若否,则确认所述故障内存占比超限,发送提示信号至所述服务器的基板管理控制器;其中,所述第五阈值大于所述第一阈值,所述第六阈值大于所述第二阈值。7.根据权利要求6所述的内存故障处理方法,其特征在于,在重启所述服务器之后,还包括:输出所述服务器重启成功的信息;更新所述服务器的运行日志,以记录所述服务器重启的原因。8.一种内存故障处理装置,其特征在于,包括:第一获取模块,用于当服务器上电后检测到存在内存故障时,获取所述服务器内全部内存的整体内存信息;其中,所述整体内存信息包括全部所述内存的数量和总容量;第二获取模块,用于获取所述服务器内故障内存的故障内存信息;其中,所述故障内存信息包括所述故障内存的数量和所述故障内存的容量;判断模块,用于根据所述整体内存信息判断所述故障内存信息是否满足预设条件;若否,则触发初始化模块;所述初始化模块,用于跳过运行所述故障内存,根据当前的内存初始化逻辑初始化其余所述内存,以重启所述服务器。9.一种内存故障处理设备,其特征在于,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的内存故障处理方法的步骤。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的内存故障处理方法的步骤。
技术总结
本发明公开了一种内存故障处理方法、装置、设备及介质,涉及服务器技术领域。方案具体当服务器上电后检测到存在内存故障时,通过获取服务器内全部内存的整体内存信息和故障内存的故障内存信息;根据整体内存信息判断故障内存信息是否满足预设条件;若否,则跳过运行故障内存,根据当前的内存初始化逻辑初始化其余内存,以重启服务器。由此可知,当检测到内存故障时,通过获取服务器内全部内存的整体内存信息和故障内存的故障内存信息,以预设条件为基准确定故障内存对服务器启动的影响情况;具体在不满足预设条件时将故障内存跳过运行,从而使服务器能够正常重启,解决了服务器在执行内存隔离时发生内存故障导致服务器无法正常启动的问题。启动的问题。启动的问题。
技术研发人员:张国奇
受保护的技术使用者:浪潮(山东)计算机科技有限公司
技术研发日:2023.06.30
技术公布日:2023/10/7

版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/