CN115016963A - 内存页隔离方法、内存监控系统及计算机可读存储介质 - Google Patents

内存页隔离方法、内存监控系统及计算机可读存储介质 Download PDF

Info

Publication number
CN115016963A
CN115016963A CN202210502218.1A CN202210502218A CN115016963A CN 115016963 A CN115016963 A CN 115016963A CN 202210502218 A CN202210502218 A CN 202210502218A CN 115016963 A CN115016963 A CN 115016963A
Authority
CN
China
Prior art keywords
memory
error
errors
determining
row
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.)
Pending
Application number
CN202210502218.1A
Other languages
English (en)
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.)
Alibaba China Co Ltd
Original Assignee
Alibaba China 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 Alibaba China Co Ltd filed Critical Alibaba China Co Ltd
Priority to CN202210502218.1A priority Critical patent/CN115016963A/zh
Publication of CN115016963A publication Critical patent/CN115016963A/zh
Pending legal-status Critical Current

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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/073Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a memory management context, e.g. virtual memory or cache management
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

本发明提供一种内存页隔离方法,包括:获得内存错误的信息,内存错误包括可纠正内存错误;根据内存错误的信息,确定在发生可纠正内存错误的内存页和/或所在行中发生不可纠正错误的可能性;根据内存错误的信息,确定在所述内存页所在行中发生错误风暴的可能性;根据发生不可纠正错误的可能性以及发生错误风暴的可能性,确定隔离策略;将所述隔离策略应用于所述内存页和/或所在行。本发明还提供一种内存监控系统。本发明通过采集内存错误的校验信息和更精准的CE数量,分析预测CE所属的页和行将来发生UE和大量CE的概率,以及CE行错误和错误风暴的关联性,根据可隔离的页的总量和发生风险的概率灵活设置策略,最终降低整机宕机率和性能影响。

Description

内存页隔离方法、内存监控系统及计算机可读存储介质
技术领域
本发明大致涉及计算机领域,尤其涉及内存页隔离方法、内存监控系统以及计算机可读存储介质。
背景技术
内存错误是硬件系统最常见的错误,会极大地影响系统的可靠性、可用性和性能。内存错误通常包括内存不可纠正错误(UE)和可纠正错误(CE)。内存不可纠正错误(UE)通常会导致宕机,而可纠正错误(CE)风暴可能影响性能甚至产生夯机。通常,内存错误表现出空间和时间的局部性,即大量错误在很短时间内发生在特定的内存区域。因此,内存页隔离技术应运而生,当内存出错的特征达到下线条件后,操作系统OS会调用接口复制此页的内容到新的物理页框,并更新虚拟页到物理页框的映射表,目标是隔离故障页,避免更多内存错误。传统的Linux和Windows页隔离策略基于一段时间内的可纠正错误(CE)的门限,但是此策略有两个缺点。首先,虽然能够避免可纠正错误,但很难避免不可纠正错误(UE)和可纠正错误(CE)风暴带来的性能影响。其次,因为CPU和OS的错误抑制机制,OS采集到的可纠正错误数量有时远少于实际可纠正错误数量,因此导致页隔离的效果大打折扣。
另外,操作系统现有的处理方式对于不可纠正错误缺乏预测性。例如:一些研究发现,Linux默认页隔离策略可以避免的UE的覆盖率不到6%。同时,经过抑制的CE数量也对CE风暴缺乏预测性。
背景技术部分的内容仅仅是公开人所知晓的技术,并不当然代表本领域的现有技术。
发明内容
有鉴于现有技术的至少一个缺陷,本发明提供一种内存页隔离方法,包括:
获得内存错误的信息,所述内存错误包括可纠正内存错误;
根据所述内存错误的信息,确定在发生可纠正内存错误的内存页和/或所在行中发生不可纠正错误的可能性;
根据所述内存错误的信息,确定在所述内存页所在行中发生错误风暴的可能性;
根据所述发生不可纠正错误的可能性以及所述发生错误风暴的可能性,确定隔离策略;和
将所述隔离策略应用于所述内存页和/或所在行。
根据本发明的一个方面,所述获得内存错误的信息的步骤包括:通过EDAC驱动获得可纠正内存错误日志;所述内存错误的信息包括:可纠正内存错误的物理位置、可纠正内存错误的出错位信息、可纠正内存错误的数量中的一项或多项。
根据本发明的一个方面,所述确定发生不可纠正错误的可能性的步骤包括:
根据所述内存页是否具有无法纠正的错误模式,确定所述内存页中发生不可纠正错误的可能性;和
当所述内存页中发生不可纠正错误的可能性超过第一阈值时,根据所在行的所有的出错地址信息和可纠正错误的出错位信息,确定所在行中发生不可纠正错误的可能性。
根据本发明的一个方面,所述确定发生错误风暴的可能性的步骤包括:
确定所述内存页中出错的地址的数目;
当所述数目超过第二阈值时,确定所述内存页所在行中发生错误风暴的可能性。
根据本发明的一个方面,所述确定发生错误风暴的可能性的步骤包括:确定所述内存页所在行中的可纠正内存错误与所述错误风暴之间的关联度。
根据本发明的一个方面,所述隔离策略包括:
当所述内存页中发生不可纠正错误的可能性低于第一阈值、并且所述数目未超过所述第二阈值时,不隔离所述内存页;
当所述内存页中发生不可纠正错误的可能性高于第一阈值或所述数目超过所述第二阈值时,根据所在行中发生不可纠正错误和错误风暴的可能性、以及所在行中未被隔离的冗余内存页的数量,确定是否对所述内存页进行隔离。
根据本发明的一个方面,所述确定是否对所述内存页进行隔离的步骤包括:
当所述冗余内存页的数量超过第三阈值时,确定对所述内存页进行隔离;
当所述冗余内存页的数量低于第三阈值时,确定不对所述内存页进行隔离。
根据本发明的一个方面,所述确定隔离策略的步骤还包括:确定对所述内存页和/或所在行进行软隔离或硬隔离;
其中所述内存页隔离方法还包括:根据所述冗余内存页的数量,动态调节所述第三阈值。
本发明还提供一种计算机程序产品,其上存储有计算机程序,所述计算机程序被处理器执行时可实施如上所述的内存页隔离方法。
本发明还提供一种内存监控系统,包括:
内存错误监控单元,配置成实时获取内存错误的信息,所述内存错误包括可纠正内存错误;
内存页风险评估单元,与所述内存错误监控单元通讯以接收所述获取内存错误的信息,并配置成根据所述内存错误的信息确定发生可纠正内存错误的内存页中发生不可纠正错误或错误风暴的可能性;
内存行风险预测单元,与所述内存错误监控单元通讯以接收所述获取内存错误的信息,并配置成根据所述内存错误的信息确定所述内存页所在行中发生不可纠正错误或错误风暴的可能性;和
资源管理单元,与所述内存页风险评估单元和内存行风险预测单元通讯,并根据所述内存页中发生不可纠正错误或错误风暴的可能性、所在行中发生不可纠正错误或错误风暴的可能性、以及未被隔离的冗余内存页的数量,确定是否对所述内存页进行隔离。
根据本发明的一个方面,所述内存错误监控单元配置成:通过EDAC驱动获得可纠正内存错误日志;所述内存错误的信息包括:可纠正内存错误的物理位置、可纠正内存错误的出错位信息、可纠正内存错误的数量中的一项或多项。
根据本发明的一个方面,所述内存页风险评估单元配置成:根据所述内存页是否具有无法纠正的错误模式,确定所述内存页中发生不可纠正错误的可能性;确定所述内存页中出错的地址的数目,并确定所述内存页中发生错误风暴的可能性;
所述内存行风险预测单元配置成:根据所有的出错地址信息和可纠正错误的出错位信息,确定所在行中发生不可纠正错误的可能性;确定所述内存页中出错的地址的数目,当所述数目超过第二阈值时,确定所在行中发生错误风暴的可能性。
根据本发明的一个方面,所述资源管理单元配置成:
当所述内存页中发生不可纠正错误的可能性低于第一阈值、并且所述数目未超过所述第二阈值时,不隔离所述内存页;
当所述内存页中发生不可纠正错误的可能性高于第一阈值或者所述数目超过所述第二阈值时,根据所在行中发生不可纠正错误和错误风暴的可能性、以及所在行中未被隔离的冗余内存页的数量是否超过第三阈值,确定是否对所述内存页进行隔离。
根据本发明的一个方面,所述隔离包括软隔离和硬隔离;其中资源管理单元配置成:根据所述冗余内存页的数量,动态调节所述第三阈值。
本方案通过采集内存错误的校验信息和更精准的CE数量,分析预测CE所属的页和行将来发生UE和大量CE的概率,以及CE行错误和错误风暴的关联性,试图隔离尽可能少的页的同时降低发生UE和CE风暴的风险。通过可隔离的页的总量和发生风险的概率灵活设置策略,最终降低整机宕机率和性能影响。
本方案通过采集EDAC retry read errror log,得到更准确的CE数量和高速缓存块数据对应的ECC出错信息,并结合内存领域知识,更精准地识别并下线容易导致UE和CE风暴的内存页,灵活地根据可隔离的页的总量和发生风险的概率设置策略,达到尽可能少地隔离内存页的同时降低发生不可纠正错误和错误风暴的风险,并最终降低节点宕机概率和性能影响。
附图说明
构成本公开的一部分的附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1示出了根据本发明一个实施例的内存页隔离方法;
图2示出了根据本发明一个优选实施例的内存页隔离方法;
图3示出了根据本发明一个实施例的内存监控系统;和
图4示出了根据本发明的至少一些实施例布置的计算机程序产品。
具体实施方式
在下文中,仅简单地描述了某些示例性实施例。正如本领域技术人员可认识到的那样,在不脱离本发明的精神或范围的情况下,可通过各种不同方式修改所描述的实施例。因此,附图和描述被认为本质上是示例性的而非限制性的。
在本发明的描述中,需要理解的是,术语″中心″、″纵向″、″横向″、″长度″、″宽度″、″厚度″、″上″、″下″、″前″、″后″、″左″、″右″、″竖直″、″水平″、″顶″、″底″、″内″、″外″、″顺时针″、″逆时针″等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语″第一″、″第二″仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有″第一″、″第二″的特征可以明示或者隐含地包括一个或者更多个所述特征。在本发明的描述中,″多个″的含义是两个或两个以上,除非另有明确具体的限定。
在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语″安装″、″相连″、″连接″应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接:可以是机械连接,也可以是电连接或可以相互通讯;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
在本发明中,除非另有明确的规定和限定,第一特征在第二特征之″上″或之″下″可以包括第一和第二特征直接接触,也可以包括第一和第二特征不是直接接触而是通过它们之间的另外的特征接触。而且,第一特征在第二特征″之上″、″上方″和″上面″包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度高于第二特征。第一特征在第二特征″之下″、″下方″和″下面″包括第一特征在第二特征正上方和斜上方,或仅仅表示第一特征水平高度小于第二特征。
下文的公开提供了许多不同的实施方式或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。当然,它们仅仅为示例,并且目的不在于限制本发明。此外,本发明可以在不同例子中重复参考数字和/或参考字母,这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施方式和/或设置之间的关系。此外,本发明提供了的各种特定的工艺和材料的例子,但是本领域普通技术人员可以意识到其他工艺的应用和/或其他材料的使用。
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
针对现有技术中的内存页隔离方案,为了提高内存页隔离的效果,本发明提供了一种改进的方案。本发明的实施例通过采集内存错误的校验信息,分析预测可纠正错误所属的页和行将来发生不可纠正错误和可纠正错误风暴的概率,以及可纠正错误和错误风暴的关联性,试图隔离尽可能少的页的同时降低发生不可纠正错误和可纠正错误风暴的风险。通过可隔离的页的总量和发生风险的概率灵活设置策略,最终降低整机宕机率和性能影响。
图1示出了根据本发明一个实施例的一种内存页隔离方法100,下面参考图1详细描述。
如图1所示,在步骤S101,获得内存错误的信息,所述内存错误包括可纠正内存错误。例如可以通过EDAC(error detection and correction driver)驱动来采集可纠正内存错误的日志,EDAC驱动不仅可以解析可纠正内存错误的微观位置信息,还可以读取更准确的可纠正内存错误数量以及高速缓存块(cacheline)对应的内存数据中ECC检测出来哪些位出错。
在步骤S101中获取的内存错误的信息可包括:可纠正内存错误的物理位置、可纠正内存错误的出错位信息、可纠正内存错误的数量中的一项或多项。
内存条通常由两个区块(rank)组成,每个区块包含多个DRAM(动态随机存取存储器)芯片,每个DRAM芯片包含多个库(bank)。每个库是由基本单元(cell)组成的2维数组,以行和列为索引。同一行的基本单元由字线(wordline)连接在一起,而同一列的基本单元共享一组位线(bitline)。内存页的大小通常为4K,操作系统OS管理4K大小的连续逻辑地址,而对应的物理页框则是分布在多个不同的DRAM芯片上相同行的连续区域。高速缓存块大小为64Bytes,高速缓存块对应的内存存储块是内存访问的基本单元,一个4K的内存页是由64个高速缓存块组成的,多个高速缓存块对应的内存存储块位于相同DRAM芯片上一行的连续区域。通常一个内存行可以存储几十个内存页框的部分内容。ECC信息中包含了一个高速缓存块数据的哪些位出错。
根据本发明的一个实施例,可纠正内存错误的物理位置包括:socket(处理器),imc(内存控制器),通道,插槽,区块,库,组,行,列等;可纠正内存错误的出错位信息包含:哪个DRAM芯片出错,哪个突发(burst)出错,哪个DQ(data queue)出错,哪些位出错;可纠正内存错误的数量例如为寄存器统计的错误数量,通常大于CPU发送给操作系统的错误事件的数量。
在步骤S102,根据所述内存错误的信息,确定在发生可纠正内存错误的内存页和/或所在行中发生不可纠正错误的可能性。
如上所述,在步骤S101中获得内存错误的信息,可包括内存错误的物理位置,据此可以确定发生可纠正内存错误的内存页以及该内存页所在的内存行(本申请中也称为“所在行”)。
根据本发明的一个实施例,根据所述内存页是否具有无法纠正的错误模式,可以确定所述内存页中发生不可纠正错误的可能性。通常,通过内存的错误校验和纠错ECC技术,对于一些错误模式可以进行校正,从而避免进一步引发不可纠正错误。而对于ECC技术无法完全校正的错误模式,将来可能发生不可纠正错误。本发明中,根据是否存在无法纠正的错误模式、以及这些无法纠正的错误模式的数量,可以确定该内存页中发生不可纠正错误的可能性。另外,可以通过训练完成的神经网络来确定或预测发生所述不可纠正错误的可能性。
另外,当所述内存页中发生不可纠正错误的可能性超过第一阈值时,根据所在行的所有的出错地址信息和可纠正错误的出错位信息,确定所在行中发生不可纠正错误的可能性。如果在所在行中的多个内存页中同时发生了不可纠正的错误,那么出错的位的特定组合可能会导致不可纠正的错误。例如当来自DRAM芯片1的第2位和第18位同时出错时,ECC纠正不了该错误,进而会导致不可纠正的错误并发生宕机。
在步骤S103,根据所述内存错误的信息,确定在所述内存页所在行中发生错误风暴的可能性。
本发明中,错误风暴是指短时间内产生大量的可纠正的错误的情形。例如1秒内产生5000个可纠正的错误。本发明不限于具体的数目,该数目可以是500、1000、2000、3000、4000、5000、8000、10000甚至更高,可以根据具体情况和场景来设定。当发生错误风暴时,CPU会重试内存访问,同时操作系统需要处理大量的异常事件,会导致系统的负载过高,严重影响用户进程的性能甚至导致宕机。此时,虽然CPU和操作系统都会采取错误抑制机制,但是影响依然很大,而且操作系统只能记录少量可纠正错误的信息。
根据本发明的一个优选实施例,通过以下方式来确定发生错误风暴的可能性:
确定所述内存页中出错的地址的数目;
当所述数目超过第二阈值时,确定所述内存页所在行中发生错误风暴的可能性。可以通过训练完成的神经网络来确定或预测发生所述错误风暴的可能性。
在步骤S104,根据所述发生不可纠正错误的可能性以及所述发生错误风暴的可能性,确定隔离策略。通过可纠正内存错误的日志中的错误信息,预测发生不可纠正错误以及错误风暴的可能性,确定隔离策略,更精准地识别并下线容易导致不可纠正错误和错误风暴的内存页,灵活地根据可隔离的页的总量和发生风险的概率设置策略,达到尽可能少地隔离内存页的同时降低发生不可纠正错误和错误风暴的风险,并最终降低节点宕机概率和性能影响。
在步骤S105,将所述隔离策略应用于所述内存页和/或所在行。
本发明上述实施例可以在操作系统中实现,并可以复用操作系统的实时监控和内存页隔离接口。
图2示出了根据本发明一个优选实施例的内存页隔离方法200,下面参考图2详细描述。
在步骤S201,获得内存错误的信息。与上述方法100中的步骤S101基本相同。
在步骤S202,根据所述内存页是否具有无法纠正的错误模式,确定所述内存页中发生不可纠正错误的可能性。例如可以根据日志中的错误信息的模式是否为ECC能够纠正的错误模式或类型,来确定内存页中发生不可纠正错误的可能性。该可能性可以是0-100%之间的具体概率值,也可以是0或1的二元值,例如当不存在ECC无法纠正的错误时,该可能性为0,否则为1。这些都在本发明的范围内。当可能发生不可纠正错误时,进行到步骤S203,否则进行到步骤S204。
在步骤S203,确定该页面所在的内存行中发生不可纠正错误的可能性。例如当所述内存页中发生不可纠正错误的可能性超过第一阈值时,根据所在行的所有的出错地址信息和可纠正错误的出错位信息,确定所在行中发生不可纠正错误的可能性。例如当来自DRAM芯片1的第2位和第18位同时出错时,ECC纠正不了该错误,进而会导致不可纠正的错误。可以预设一些ECC无法纠正的出错位的组合列表,在步骤S203中,将出错的多个位与该预设的组合列表进行对比,确认是否存在一些会导致不可纠正错误的组合。并且优选的,可以根据数量来确定具体的可能性。或者也可以设置0和1的二元值。然后进行到步骤S206。
在步骤S204,确定所述内存页中出错的地址的数目,并确定该数目是否超过第二阈值。当该数目超过第二阈值时,进行到步骤S205,否则进行到步骤S210。
在步骤S205,当所述数目超过第二阈值时,确定所述内存页所在行中发生错误风暴的可能性。另外优选的,在所述步骤S205中,还可以确定所述内存页所在行中的可纠正内存错误与所述错误风暴之间的关联度。然后进行到步骤S206。
在步骤S206,根据所在行中未被隔离的冗余内存页的数量,确定是否对所述内存页进行隔离。根据本发明一个优选实施例,当所述冗余内存页的数量超过第三阈值时,确定对所述内存页进行隔离,即软隔离,进行到步骤S207;当所述冗余内存页的数量低于第三阈值时,确定不对所述内存页进行隔离,进行到所述步骤S210。
本发明中,所述第三阈值可以进行动态调节,例如根据所述冗余内存页的数量,动态调节所述第三阈值。通常冗余页较多的时候,可以适当降低第三阈值;冗余页较少的时候,可以增加第三阈值。
在步骤S207,对所述内存页进行隔离,即软隔离。然后进行到步骤S208。
在所述步骤S208,判断是否需要对所述内存页进行硬隔离。如果需要,则进行到步骤S209,对该内存页进行硬隔离;否则,进行到步骤S210,该方法结束。软隔离当系统重启后会失效,硬页隔离需要永久存储隔离的页,并当系统重启的时候隔离,永久性地隔离了失效的物理页。
上述实施例中,不仅考虑了页的错误特征和不可纠正错误以及错误风暴的关联,同时对拥有多个(例如128)高速缓存块对应的物理存储块的内存行预测了发生不可纠正错误和错误风暴的概率。通过结合页和行范围的错误信息设定策略,从而减少不可纠正错误和错误风暴的风险。
本发明还提供一种内存监控系统300,如图3所示,下面参考图3详细描述。
如图3所示,内存监控系统300包括内存错误监控单元301、内存页风险评估单元303、内存行风险预测单元305以及资源管理单元307。其中内存错误监控单元301配置成实时获取内存错误的信息,所述内存错误包括可纠正内存错误。内存错误监控单元301为实时的监控模块,实时采集可纠正内存错误的信息,并且可以同时将可纠正内存错误的信息保存到离线数据库或存储器中。
内存页风险评估单元303与所述内存错误监控单元301通讯以接收所述获取内存错误的信息,并配置成根据所述内存错误的信息确定发生可纠正内存错误的内存页中发生不可纠正错误或错误风暴的可能性。
内存行风险预测单元305与所述内存错误监控单元301通讯以接收所述获取内存错误的信息,并配置成根据所述内存错误的信息确定所述内存页所在行中发生不可纠正错误或错误风暴的可能性。
内存页风险评估单元303和内存行风险预测单元305分别可以包括神经网络,根据可纠正内存错误的信息,分别预测内存页上以及所在行中出现不可纠正错误或者错误风暴的可能性。内存页风险评估单元303和内存行风险预测单元305的神经网络可以提前进行训练,利用实际的内存错误以及标签数据来进行训练,训练完成的神经网络被用于内存页风险评估以及内存行风险预测。
资源管理单元307与所述内存页风险评估单元303和内存行风险预测单元305通讯,并根据所述内存页中发生不可纠正错误或错误风暴的可能性、所在行中发生不可纠正错误或错误风暴的可能性、以及未被隔离的冗余内存页的数量,确定是否对所述内存页进行隔离。资源管理模块基于剩余可隔离的内存冗余页和发生风险的概率决定是否要隔离此页。通常冗余页较多的时候标准可以适当放宽,当冗余页少的时候条件相对比较严格
根据本发明的一个实施例,内存错误监控单元301配置成:通过EDAC驱动获得可纠正内存错误日志;所述内存错误的信息包括:可纠正内存错误的物理位置、可纠正内存错误的出错位信息、可纠正内存错误的数量中的一项或多项。
根据本发明的一个实施例,所述内存页风险评估单元303配置成:根据所述内存页是否具有无法纠正的错误模式,确定所述内存页中发生不可纠正错误的可能性;确定所述内存页中出错的地址的数目,并确定所述内存页中发生错误风暴的可能性。
所述内存行风险预测单元305配置成:根据所有的出错地址信息和可纠正错误的出错位信息,确定所在行中发生不可纠正错误的可能性;确定所述内存页中出错的地址的数目,当所述数目超过第二阈值时,确定所在行中发生错误风暴的可能性。
根据本发明的一个优选实施例,所述资源管理单元307配置成:当所述内存页中发生不可纠正错误的可能性低于第一阈值、并且所述数目未超过所述第二阈值时,不隔离所述内存页;当所述内存页中发生不可纠正错误的可能性高于第一阈值或者所述数目超过所述第二阈值时,根据所在行中发生不可纠正错误和错误风暴的可能性、以及所在行中未被隔离的冗余内存页的数量是否超过第三阈值,确定是否对所述内存页进行隔离。
根据本发明的一个优选实施例,所述隔离包括软隔离和硬隔离;其中资源管理单元配置成:根据所述冗余内存页的数量,动态调节所述第三阈值。
图4是依照本发明的至少一些实施例布置的计算机程序产品400的框图。信号承载介质402可以被实现为或者包括计算机可读介质406、计算机可记录介质408、计算机通信介质410或者它们的组合,其存储可配置处理单元以执行先前描述的过程中的全部或一些的编程指令404。这些指令可以包括例如用于使一个或多个处理器执行如下处理的一个或多个可执行指令:获得内存错误的信息,所述内存错误包括可纠正内存错误;根据所述内存错误的信息,确定在发生可纠正内存错误的内存页和/或所在行中发生不可纠正错误的可能性;根据所述内存错误的信息,确定在所述内存页所在行中发生错误风暴的可能性;根据所述发生不可纠正错误的可能性以及所述发生错误风暴的可能性,确定隔离策略;将所述隔离策略应用于所述内存页和/或所在行。
以上描述了根据本发明的各个实施例的技术方案。其中通过EDAC驱动采集内存错误的详细信息,分析内存页是否可能发生不可纠正错误或错误风暴,并预测内存页所属的行发生不可纠正错误和错误风暴的可能性,同时本发明的实施例创造性地综合页和行的故障特征用于页隔离,可以有效地隔离可能发生不可纠正错误的内存页,并隔离可能发生大量错误的连续页从而降低整机错误风暴的概率,最终达到了提高服务器整机内存可靠性的目标。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (14)

1.一种内存页隔离方法,包括:
获得内存错误的信息,所述内存错误包括可纠正内存错误;
根据所述内存错误的信息,确定在发生可纠正内存错误的内存页和/或所在行中发生不可纠正错误的可能性;
根据所述内存错误的信息,确定在所述内存页所在行中发生错误风暴的可能性;
根据所述发生不可纠正错误的可能性以及所述发生错误风暴的可能性,确定隔离策略;和
将所述隔离策略应用于所述内存页和/或所在行。
2.如权利要求1所述的内存页隔离方法,其中所述获得内存错误的信息的步骤包括:通过EDAC驱动获得可纠正内存错误日志;所述内存错误的信息包括:可纠正内存错误的物理位置、可纠正内存错误的出错位信息、可纠正内存错误的数量中的一项或多项。
3.如权利要求2所述的内存页隔离方法,其中所述确定发生不可纠正错误的可能性的步骤包括:
根据所述内存页是否具有无法纠正的错误模式,确定所述内存页中发生不可纠正错误的可能性;和
当所述内存页中发生不可纠正错误的可能性超过第一阈值时,根据所在行的所有的出错地址信息和可纠正错误的出错位信息,确定所在行中发生不可纠正错误的可能性。
4.如权利要求3所述的内存页隔离方法,其中所述确定发生错误风暴的可能性的步骤包括:
确定所述内存页中出错的地址的数目;
当所述数目超过第二阈值时,确定所述内存页所在行中发生错误风暴的可能性。
5.如权利要求4所述的内存页隔离方法,其中所述确定发生错误风暴的可能性的步骤包括:确定所述内存页所在行中的可纠正内存错误与所述错误风暴之间的关联度。
6.如权利要求4或5所述的内存页隔离方法,其中所述隔离策略包括:
当所述内存页中发生不可纠正错误的可能性低于第一阈值、并且所述数目未超过所述第二阈值时,不隔离所述内存页;
当所述内存页中发生不可纠正错误的可能性高于第一阈值或所述数目超过所述第二阈值时,根据所在行中发生不可纠正错误和错误风暴的可能性、以及所在行中未被隔离的冗余内存页的数量,确定是否对所述内存页进行隔离。
7.如权利要求6所述的内存页隔离方法,其中所述确定是否对所述内存页进行隔离的步骤包括:
当所述冗余内存页的数量超过第三阈值时,确定对所述内存页进行隔离;
当所述冗余内存页的数量低于第三阈值时,确定不对所述内存页进行隔离。
8.如权利要7所述的内存页隔离方法,其中所述确定隔离策略的步骤还包括:确定对所述内存页和/或所在行进行软隔离或硬隔离;
其中所述内存页隔离方法还包括:根据所述冗余内存页的数量,动态调节所述第三阈值。
9.一种计算机程序产品,其上存储有计算机程序,所述计算机程序被处理器执行时可实施如权利要求1-8中任一项所述的内存页隔离方法。
10.一种内存监控系统,包括:
内存错误监控单元,配置成实时获取内存错误的信息,所述内存错误包括可纠正内存错误;
内存页风险评估单元,与所述内存错误监控单元通讯以接收所述获取内存错误的信息,并配置成根据所述内存错误的信息确定发生可纠正内存错误的内存页中发生不可纠正错误或错误风暴的可能性;
内存行风险预测单元,与所述内存错误监控单元通讯以接收所述获取内存错误的信息,并配置成根据所述内存错误的信息确定所述内存页所在行中发生不可纠正错误或错误风暴的可能性;和
资源管理单元,与所述内存页风险评估单元和内存行风险预测单元通讯,并根据所述内存页中发生不可纠正错误或错误风暴的可能性、所在行中发生不可纠正错误或错误风暴的可能性、以及未被隔离的冗余内存页的数量,确定是否对所述内存页进行隔离。
11.如权利要求10所述的内存监控系统,其中所述内存错误监控单元配置成:通过EDAC驱动获得可纠正内存错误日志;所述内存错误的信息包括:可纠正内存错误的物理位置、可纠正内存错误的出错位信息、可纠正内存错误的数量中的一项或多项。
12.如权利要求9或10所述的内存监控系统,其中所述内存页风险评估单元配置成:根据所述内存页是否具有无法纠正的错误模式,确定所述内存页中发生不可纠正错误的可能性;确定所述内存页中出错的地址的数目,并确定所述内存页中发生错误风暴的可能性;
所述内存行风险预测单元配置成:根据所有的出错地址信息和可纠正错误的出错位信息,确定所在行中发生不可纠正错误的可能性;确定所述内存页中出错的地址的数目,当所述数目超过第二阈值时,确定所在行中发生错误风暴的可能性。
13.如权利要求12所述的内存监控系统,其中所述资源管理单元配置成:
当所述内存页中发生不可纠正错误的可能性低于第一阈值、并且所述数目未超过所述第二阈值时,不隔离所述内存页;
当所述内存页中发生不可纠正错误的可能性高于第一阈值或者所述数目超过所述第二阈值时,根据所在行中发生不可纠正错误和错误风暴的可能性、以及所在行中未被隔离的冗余内存页的数量是否超过第三阈值,确定是否对所述内存页进行隔离。
14.如权利要求13述的内存监控系统,其中所述隔离包括软隔离和硬隔离;其中资源管理单元配置成:根据所述冗余内存页的数量,动态调节所述第三阈值。
CN202210502218.1A 2022-05-06 2022-05-06 内存页隔离方法、内存监控系统及计算机可读存储介质 Pending CN115016963A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210502218.1A CN115016963A (zh) 2022-05-06 2022-05-06 内存页隔离方法、内存监控系统及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210502218.1A CN115016963A (zh) 2022-05-06 2022-05-06 内存页隔离方法、内存监控系统及计算机可读存储介质

Publications (1)

Publication Number Publication Date
CN115016963A true CN115016963A (zh) 2022-09-06

Family

ID=83069121

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210502218.1A Pending CN115016963A (zh) 2022-05-06 2022-05-06 内存页隔离方法、内存监控系统及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN115016963A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115629905A (zh) * 2022-12-21 2023-01-20 苏州浪潮智能科技有限公司 一种内存故障预警方法、装置、电子设备及可读介质
CN116841795A (zh) * 2023-08-29 2023-10-03 苏州浪潮智能科技有限公司 一种内存设备控制方法、装置、电子设备及存储介质
WO2024066500A1 (zh) * 2022-09-26 2024-04-04 华为技术有限公司 内存错误处理方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024066500A1 (zh) * 2022-09-26 2024-04-04 华为技术有限公司 内存错误处理方法及装置
CN115629905A (zh) * 2022-12-21 2023-01-20 苏州浪潮智能科技有限公司 一种内存故障预警方法、装置、电子设备及可读介质
CN116841795A (zh) * 2023-08-29 2023-10-03 苏州浪潮智能科技有限公司 一种内存设备控制方法、装置、电子设备及存储介质
CN116841795B (zh) * 2023-08-29 2024-01-12 苏州浪潮智能科技有限公司 一种内存设备控制方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
US10235233B2 (en) Storage error type determination
CN115016963A (zh) 内存页隔离方法、内存监控系统及计算机可读存储介质
EP3916557B1 (en) Memory error processing method and device
US20190095299A1 (en) Storage system with machine learning mechanism and method of operation thereof
US20230185659A1 (en) Memory Fault Handling Method and Apparatus
US5263032A (en) Computer system operation with corrected read data function
KR100337218B1 (ko) 스크루빙 및 스페어링을 향상시킨 컴퓨터 램 메모리 시스템
CN114064333A (zh) 一种内存故障处理方法和装置
US7877666B2 (en) Tracking health of integrated circuit structures
US20080282037A1 (en) Method and apparatus for controlling cache
EP1746505A2 (en) Autonomous method and apparatus for mitigating soft-errors in integrated circuit memory storage devices at run-time
US20190019569A1 (en) Row repair of corrected memory address
Du et al. Predicting uncorrectable memory errors for proactive replacement: An empirical study on large-scale field data
CN111221775B (zh) 处理器、缓存处理方法及电子设备
CN111625387A (zh) 内存错误处理方法、装置及服务器
Li et al. From correctable memory errors to uncorrectable memory errors: What error bits tell
CN115168087A (zh) 一种确定内存故障的修复资源粒度的方法及装置
Du et al. Combining error statistics with failure prediction in memory page offlining
Du et al. Fault-aware prediction-guided page offlining for uncorrectable memory error prevention
US10275307B2 (en) Detection of error patterns in memory dies
CN114996065A (zh) 内存故障预测方法、装置及设备
Du et al. DPCLS: Improving partial cache line sparing with dynamics for memory error prevention
CN114860487A (zh) 一种内存故障识别方法及一种内存故障隔离方法
KR20230013128A (ko) 프로그래밍 실패에 대한 독립 디스크 스트라이핑의 중복 어레이를 위한 방법 및 그 장치
US11734093B2 (en) Storage device block-level failure prediction-based data placement

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