一种测试高端服务器内存的方法及系统与流程

文档序号:15143926发布日期:2018-08-10 20:13阅读:119来源:国知局

本申请涉及信息管理领域,特别涉及一种测试高端服务器内存的方法、系统、服务器及计算机可读存储介质。



背景技术:

近年来随着云计算和大数据的发展,高端服务器的需求越来越多,顾名思义,高端服务器与通用服务器最大的区别在于处理器和内存的数量,通用服务器一个系统内一般有两个处理器,而高端服务器一个系统内部至少有八个处理器,一般而言,若每个处理器有两个内存控制器,每个内存控制器支持4组内存通道,每组内存通道可以支持3根内存条数,则通用服务器可以支持48根内存条,高端服务器至少需要192根内存条,内存寻址空间达到3t以上。

在实际应用中,内存条坏掉是不可避免的事情,这就需要高端服务器出货之前来检查一下内存是否有损坏,现有技术中的内存空间的测试是由系统主节点处理器完成的,如此大的内存空间如果按照传统的方法测试需要特别长的时间,使得高端服务器的内存测试效率极为低下。

因此,如何高效的高端测试服务器内存是本领域技术人员目前需要解决的技术问题。



技术实现要素:

本申请的目的是提供一种测试高端服务器内存的方法、系统、服务器及计算机可读存储介质,用于高效测试高端服务器的内存。

为解决上述技术问题,本申请提供一种测试高端服务器内存的方法,该方法包括:

将待测内存空间划分为预设数目的待测内存子空间,并对各所述待测内存子空间进行编号;

将各内存空间测试指令发送至各处理器核心,以使各所述处理器核心并行执行各所述内存空间测试指令测试对应的待测内存子空间;其中,所述预设数目小于或等于所述处理器核心的总数目;

判断是否存在测试未通过的待测内存子空间;

若是,则输出所述待测内存子空间的编号。

可选的,在各所述处理器核心并行执行各所述内存空间测试指令测试对应的待测内存子空间之后,还包括:

将得到的测试状态存储到各所述处理器核心的状态寄存器中。

可选的,判断是否存在测试未通过的待测内存子空间,包括:

获取到各所述状态寄存器中存储的各所述测试状态;

根据各所述测试状态判断是否存在出现ecc校验错误的状态寄存器。

可选的,将内存空间测试指令发送至各处理器核心,包括:

利用bios多线程技术将所述内存空间测试指令发送至各所述处理器核心。

本申请还提供一种测试高端服务器内存的系统,该系统包括:

划分及编号模块,用于将待测内存空间划分为预设数目的待测内存子空间,并对各所述待测内存子空间进行编号;

发送模块,用于将各内存空间测试指令发送至各处理器核心,以使各所述处理器核心并行执行各所述内存空间测试指令测试对应的待测内存子空间;其中,所述预设数目小于或等于所述处理器核心的总数目;

判断模块,用于判断是否存在测试未通过的待测内存子空间;

输出模块,用于当存在测试未通过的待测内存子空间时,输出所述待测内存子空间的编号。

可选的,还包括:

存储模块,用于将得到的测试状态存储到各所述处理器核心的状态寄存器中。

可选的,所述判断模块包括:

获取子模块,用于获取到各所述状态寄存器中存储的各所述测试状态;

检查子模块,用于根据各所述测试状态判断是否存在出现ecc校验错误的状态寄存器。

可选的,所述发送模块包括:

发送子模块,用于利用bios多线程技术将所述内存空间测试指令发送至各所述处理器核心。

本申请还提供一种服务器,该服务器包括:

存储器,用于存储计算机程序;

处理器,用于执行所述计算机程序时实现如上述任一项所述测试高端服务器内存的方法的步骤。

本申请还提供一种测试高端服务器内存的计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述测试高端服务器内存的方法的步骤。

本申请所提供测试高端服务器内存的方法,通过将待测内存空间划分为预设数目的待测内存子空间,并对各待测内存子空间进行编号;将各内存空间测试指令发送至各处理器核心,以使各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间;其中,预设数目小于或等于处理器核心的总数目;判断是否存在测试未通过的待测内存子空间;若是,则输出待测内存子空间的编号。

基于现有技术中的内存空间的测试需要特别长的时间,使得高端服务器的内存测试效率极为低下,本申请所提供的技术方案,通过待测内存空间划分为预设数目的待测内存子空间,以及将各内存空间测试指令发送至各处理器核心,以使各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间,使得不需要系统主节点处理器对待测内存空间一一进行测试,而是利用服务器的各处理器核心并行测试待测空间,并将测试未通过的待测子空间的编号输出,以方便运维人员找到损坏的内存条并进行更换,大大缩短了高端服务器内存检查需要的时间,进而提高了高端服务器的稳定性。本申请同时还提供了一种测试高端服务器内存的系统、服务器及计算机可读存储介质,具有上述有益效果,在此不再赘述。

附图说明

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

图1为本申请实施例所提供的一种测试高端服务器内存的方法的流程图;

图2为本申请实施例所提供的一种测试高端服务器内存的系统的结构图;

图3为本申请实施例所提供的另一种测试高端服务器内存的系统的结构图;

图4为本申请实施例所提供的一种服务器的结构图。

具体实施方式

本申请的核心是提供一种测试高端服务器内存的方法、系统、服务器及计算机可读存储介质,用于高效测试高端服务器的内存。

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

请参考图1,图1为本申请实施例所提供的一种测试高端服务器内存的方法的流程图。

其具体包括如下步骤:

s101:将待测内存空间划分为预设数目的待测内存子空间,并对各待测内存子空间进行编号;

近年来随着云计算和大数据的发展,高端服务器的需求越来越多,顾名思义,高端服务器与通用服务器最大的区别在于处理器和内存的数量,在实际应用中,内存条坏掉是不可避免的事情,这就需要高端服务器出货之前来检查一下内存是否有损坏,现有技术中的内存空间的测试是由系统主节点处理器完成的,如此大的内存空间如果按照传统的方法测试需要特别长的时间,使得高端服务器的内存测试效率极为低下,基于此,本申请提供了一种测试高端服务器内存的方法,能够高效测试高端服务器的内存;

该方法先将待测内存空间划分为预设数目的待测内存子空间,并对各待测内存子空间进行编号,使得每个待测内存子空间都具有唯一的编号,使得用户能够根据编号查找到对应的待测内存子空间,进而找到对应的内存条。

s102:将各内存空间测试指令发送至各处理器核心,以使各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间;

不同于现有技术中利用系统主节点处理器对待测内存空间一一进行测试,该方法利用服务器的各处理器核心并行测试待测空间,以达到节省测试时间、提高测试效率的目的;

这里提到的预设数目小于或等于处理器核心的总数目,理想状况下每个处理器核心都分到一个待测内存子空间,并根据内存空间测试指令对其进行测试;

可选的,在各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间之后,还可以将得到的测试状态存储到各处理器核心的状态寄存器中,以便于服务器获取及判断是否存在出现ecc校验错误的状态寄存器;

可选的,这里提到的将各内存空间测试指令发送至各处理器核心,具体可以为:

利用bios多线程技术将内存空间测试指令发送至各处理器核心。

s103:判断是否存在测试未通过的待测内存子空间;

若是,则进入s104;

可选的,当不存在测试未通过的待测内存子空间时,则说明待测内存空间没有出现问题,即内存条未出现损坏,则测试通过;

可选的,基于现有的服务器内存大部分均为ecc内存,这里提到的判断是否存在测试未通过的待测内存子空间,具体可以为:

获取到各状态寄存器中存储的各测试状态;

根据各测试状态判断是否存在出现ecc校验错误的状态寄存器;

当各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间之后,将得到的测试状态存储到各处理器核心的状态寄存器中,此时服务器可以获取各测试状态,并根据各测试状态判断是否存在出现ecc校验错误的状态寄存器,进而根据判断结果确定是否存在测试未通过的待测内存子空间,若存在出现ecc校验错误的状态寄存器,则证明对应的待测内存子空间未通过测试;

这里提到的ecc内存本身并不是一种内存型号,也不是一种内存专用技术,它是一种广泛应用于各种领域的计算机指令中,是一种指令纠错技术,它的英文全称是“errorcheckingandcorrecting”,对应的中文名称就叫做“错误检查和纠正”,主要功能就是“发现并纠正错误”,它比奇偶校正技术更先进的方面主要在于它不仅能发现错误,而且能纠正这些错误,这些错误纠正之后计算机才能正确执行下面的任务,确保服务器的正常运行,然而,ecc校验智能纠正简单的错误,当出现较为复杂的错误时,ecc无法完成修复就会出现ecc校验错误。

s104:输出该待测内存子空间的编号。

当存在测试未通过的待测内存子空间时,则说明待测内存空间出现问题,即内存条可能出现损坏的情况,则测试未通过,此时将该待测内存子空间的编号输出,以便于运维人员找到损坏的内存条并进行更换;

可选的,这里提到的编号的输出方式可以有多种,例如可以将编号发送邮件至指定邮箱,也可以将编号发送至指定号码,还可以输出到服务器的显示屏,以便于运维人员能够及时发现并做出相应处理。

基于上述技术方案,本申请所提供的一种测试高端服务器内存的方法,通过待测内存空间划分为预设数目的待测内存子空间,以及将各内存空间测试指令发送至各处理器核心,以使各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间,使得不需要系统主节点处理器对待测内存空间一一进行测试,而是利用服务器的各处理器核心并行测试待测空间,并将测试未通过的待测子空间的编号输出,以方便运维人员找到损坏的内存条并进行更换,大大缩短了高端服务器内存检查需要的时间,进而提高了高端服务器的稳定性。

请参考图2,图2为本申请实施例所提供的一种测试高端服务器内存的系统的结构图。

该系统可以包括:

划分及编号模块100,用于将待测内存空间划分为预设数目的待测内存子空间,并对各待测内存子空间进行编号;

发送模块200,用于将各内存空间测试指令发送至各处理器核心,以使各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间;其中,预设数目小于或等于处理器核心的总数目;

判断模块300,用于判断是否存在测试未通过的待测内存子空间;

输出模块400,用于当存在测试未通过的待测内存子空间时,输出待测内存子空间的编号。

请参考图3,图3为本申请实施例所提供的另一种测试高端服务器内存的系统的结构图。

该系统还可以包括:

存储模块,用于将得到的测试状态存储到各处理器核心的状态寄存器中。

该判断模块300可以包括:

获取子模块,用于获取到各状态寄存器中存储的各测试状态;

检查子模块,用于根据各测试状态判断是否存在出现ecc校验错误的状态寄存器。

该发送模块200可以包括:

发送子模块,用于利用bios多线程技术将内存空间测试指令发送至各处理器核心。

以上系统中的各个组成部分可应用于以下的实际流程中:

划分及编号模块将待测内存空间划分为预设数目的待测内存子空间,并对各待测内存子空间进行编号;发送子模块利用bios多线程技术将内存空间测试指令发送至各处理器核心,以使各处理器核心并行执行各内存空间测试指令测试对应的待测内存子空间;存储模块将得到的测试状态存储到各处理器核心的状态寄存器中;获取子模块获取到各状态寄存器中存储的各测试状态;检查子模块根据各测试状态判断是否存在出现ecc校验错误的状态寄存器;当存在测试未通过的待测内存子空间时,输出模块输出待测内存子空间的编号。

请参考图4,图4为本申请实施例所提供的一种服务器的结构图。

该服务器可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(centralprocessingunits,cpu)522(例如,一个或一个以上处理器)和存储器532,一个或一个以上存储应用程序542或数据544的存储介质530(例如一个或一个以上海量存储设备)。其中,存储器532和存储介质530可以是短暂存储或持久存储。存储在存储介质530的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对装置中的一系列指令操作。更进一步地,中央处理器522可以设置为与存储介质530通信,在服务器500上执行存储介质530中的一系列指令操作。

服务器500还可以包括一个或一个以上电源526,一个或一个以上有线或无线网络接口550,一个或一个以上输入输出接口558,和/或,一个或一个以上操作系统541,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。

上述图1所描述的测试高端服务器内存的方法中的步骤由服务器基于该图4所示的结构实现。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、服务器和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

另外,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,功能调用装置,或者网络设备等)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。

以上对本申请所提供的一种测试高端服务器内存的方法、系统、服务器及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、物品或者设备中还存在另外的相同要素。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1