一种服务器内存故障的检测方法、装置、设备和介质与流程

    专利查询2025-03-04  5


    本发明涉及计算机,特别是涉及一种服务器内存故障的检测方法、装置、设备和介质。


    背景技术:

    1、动态随机存取存储器(dynamic random access memory,dram)被广泛用于快速数据存储和检索。在dram单元中,数据以电荷的形式存储在电容器上,但这些电荷会逐渐泄漏。为了防止数据丢失,外部存储器刷新电路定期重写电容器中的数据,使其恢复到原始电量。然而这一机制容易受到各种因素的干扰。当dram芯片发生故障时,从单元中读取的数据可能与存储的值不同,从而出现内存错误。这些内存错误已经成为服务器部件故障的关键因素,对系统的可靠性、可用性和可维护性产生了负面影响。

    2、常见的脱机策略是基于过去一段时间内的错误率统计,即在过去的t小时内达到x个错误时,将页面进行脱机处理。该实现方式虽然在一定程度上提高了系统的稳定性和可靠性,但它要求故障必须重复发生并累积到一定阈值才能被识别,从而导致了从故障发生到被检测到存在显著延迟。这种延迟可能允许错误扩散,影响系统性能,甚至导致数据损坏。

    3、可见,如何提升内存故障识别的及时性,是本领域技术人员需要解决的问题。


    技术实现思路

    1、本发明实施例的目的是提供一种服务器内存故障的检测方法、装置、设备和介质,可以解决内存故障检测存在显著延迟的问题。

    2、为解决上述技术问题,本发明实施例提供一种服务器内存故障的检测方法,包括:

    3、周期性巡检存在硬故障的目标内存单元,并对所述目标内存单元所在的内存页进行脱机处理;

    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、根据设定的k阶距离,确定出每个待测试点的k阶邻域;

    33、基于所述k阶距离、目标待测试点的k阶邻域中包含的各待测试点与所述目标待测试点之间的距离,确定出所述目标待测试点的离群值;其中,所述目标待测试点为所有待测试点中的任意一个待测试点;

    34、在所述离群值大于设定的离群阈值的情况下,删除所述目标待测试点,并基于剩余的待测试点划分出待测试区域。

    35、一方面,基于所述k阶距离、目标待测试点的k阶邻域中包含的各待测试点与所述目标待测试点之间的距离,确定出所述目标待测试点的离群值包括:

    36、根据所述目标待测试点与其邻域点之间的距离以及所述k阶距离,确定出所述目标待测试点的可达距离;其中,所述邻域点为所述目标待测试点的k阶邻域中包含的所有待测试点中除所述目标待测试点之外的任意一个待测试点;

    37、基于所述目标待测试点的可达距离以及所述目标待测试点的k阶邻域,确定出所述目标待测试点的局部可达密度;

    38、依据各邻域点对应的局部可达密度以及所述目标待测试点的k阶邻域,确定出所述目标待测试点的离群值。

    39、一方面,依据各待测试区域对应的内存单元的个数以及存在硬故障的内存单元的个数,确定出各待测试区域各自对应的故障密度包括:

    40、按照网格划分方式,确定出各待测试区域所对应的最小方形面积;

    41、统计每个待测试区域所对应的最小方形面积所包含的内存单元的个数以及存在硬故障的内存单元的个数;

    42、将每个最小方形面积所包含的存在硬故障的内存单元的个数与内存单元的个数的比值作为其对应的待测试区域的故障密度。

    43、一方面,对所述目标待测试区域对应的内存页进行故障处理包括:

    44、将所述目标待测试区域对应的内存页进行脱机处理。

    45、一方面,对所述目标待测试区域对应的内存页进行故障处理包括:

    46、对所述目标待测试区域对应的内存页进行冗余修复;其中,所述冗余修复包括单设备数据校正、自适应双设备数据校正,后封装修复或内存镜像。

    47、本发明实施例还提供了一种服务器内存故障的检测装置,包括巡检单元、第一脱机单元、第二脱机单元和第三脱机单元;

    48、所述巡检单元,用于周期性巡检存在硬故障的目标内存单元;

    49、所述第一脱机单元,用于对所述目标内存单元所在的内存页进行脱机处理;

    50、所述第二脱机单元,用于在与所述目标内存单元相邻的内存单元存在硬故障的情况下,对硬故障单元所在的内存页进行脱机处理;

    51、所述第三脱机单元,用于在所述目标内存单元以及所述硬故障单元所在的行列区域中出现硬故障单元的个数大于或等于设定阈值的情况下,对所述行列区域对应的内存页进行脱机处理。

    52、一方面,所述巡检单元包括判断子单元、第一判定子单元、第一记录子单元、第二记录子单元、第二判定子单元和迁移子单元;

    53、所述判断子单元,用于按照设定的第一时间间隔周期性判断纠错码是否报内存错误;

    54、所述第一判定子单元,用于在巡检过程中存在故障次数大于或等于硬故障阈值的第一内存单元的情况下,将所述第一内存单元判定为硬故障;

    55、所述第一记录子单元,用于将所述第一内存单元的地址记录至第一存储空间;

    56、所述第二记录子单元,用于将巡检过程中存在故障次数小于硬故障阈值的第二内存单元的地址记录至第二存储空间;

    57、所述第二判定子单元,用于按照设定的第二时间间隔对所述第二存储空间中记录的地址所对应的第二内存单元进行故障检测,将存在故障的第二内存单元判定为硬故障;

    58、所述迁移子单元,用于将存在故障的第二内存单元的地址转移至所述第一存储空间。

    59、一方面,所述第二判定子单元用于判断所述第二存储空间中是否记录有第二内存单元的地址;

    60、在所述第二存储空间中记录有第二内存单元的地址的情况下,按照所述第二内存单元的地址分别对所述第二内存单元执行写零和写一操作,以得到故障检测结果;

    61、在所述故障检测结果为存在故障的情况下,将存在故障的第二内存单元判定为硬故障。

    62、一方面,还包括删除单元;

    63、所述删除单元,用于在所述故障检测结果为不存在故障的情况下,将不存在故障的第二内存单元的地址从所述第二存储空间中删除。

    64、一方面,所述第二脱机单元包括读取子单元、操作子单元和处理子单元;

    65、所述读取子单元,用于从所述第一存储空间中读取目标内存单元的地址;

    66、所述操作子单元,用于按照所述目标内存单元的地址,确定出与所述目标内存单元相邻的内存单元,并分别对与所述目标内存单元相邻的内存单元执行写零和写一操作,以得到故障检测结果;

    67、所述处理子单元,用于在所述故障检测结果为存在故障的情况下,对存在故障的内存单元所在的内存页进行脱机处理,并将存在故障的内存单元的地址记录至所述第一存储空间。

    68、一方面,所述第三脱机单元包括统计子单元、行处理子单元和列处理子单元;

    69、所述统计子单元,用于基于所述第一存储空间中记录的地址,统计相同行和相同列中存在硬故障的内存单元的个数;

    70、所述行处理子单元,用于在存在硬故障的内存单元的个数大于或等于区域阈值的目标行的情况下,对所述目标行对应的内存页进行脱机处理;

    71、所述列处理子单元,用于在存在硬故障的内存单元的个数大于或等于区域阈值的目标列的情况下,对所述目标列对应的内存页进行脱机处理。

    72、一方面,还包括统计单元、区域确定单元、密度确定单元和故障处理单元;

    73、所述统计单元,用于根据所述第一存储空间中记录的地址,统计所有存在硬故障的内存单元;

    74、所述区域确定单元,用于基于所有存在硬故障的内存单元的分布情况,确定出各待测试区域;

    75、所述密度确定单元,用于依据各待测试区域对应的内存单元的个数以及存在硬故障的内存单元的个数,确定出各待测试区域各自对应的故障密度;

    76、所述故障处理单元,用于在存在故障密度大于密度阈值的目标待测试区域的情况下,对所述目标待测试区域对应的内存页进行故障处理。

    77、一方面,所述区域确定单元包括作为子单元、邻域确定子单元、离群值确定子单元、删除子单元和划分子单元;

    78、所述作为子单元,用于将每个存在硬故障的内存单元作为待测试点;

    79、所述邻域确定子单元,用于根据设定的k阶距离,确定出每个待测试点的k阶邻域;

    80、所述离群值确定子单元,用于基于所述k阶距离、目标待测试点的k阶邻域中包含的各待测试点与所述目标待测试点之间的距离,确定出所述目标待测试点的离群值;其中,所述目标待测试点为所有待测试点中的任意一个待测试点;

    81、所述删除子单元,用于在所述离群值大于设定的离群阈值的情况下,删除所述目标待测试点;

    82、所述划分子单元,用于基于剩余的待测试点划分出待测试区域。

    83、一方面,所述离群值确定子单元用于根据所述目标待测试点与其邻域点之间的距离以及所述k阶距离,确定出所述目标待测试点的可达距离;其中,所述邻域点为所述目标待测试点的k阶邻域中包含的所有待测试点中除所述目标待测试点之外的任意一个待测试点;

    84、基于所述目标待测试点的可达距离以及所述目标待测试点的k阶邻域,确定出所述目标待测试点的局部可达密度;

    85、依据各邻域点对应的局部可达密度以及所述目标待测试点的k阶邻域,确定出所述目标待测试点的离群值。

    86、一方面,所述密度确定单元用于按照网格划分方式,确定出各待测试区域所对应的最小方形面积;

    87、统计每个待测试区域所对应的最小方形面积所包含的内存单元的个数以及存在硬故障的内存单元的个数;

    88、将每个最小方形面积所包含的存在硬故障的内存单元的个数与内存单元的个数的比值作为其对应的待测试区域的故障密度。

    89、一方面,所述故障处理单元用于将所述目标待测试区域对应的内存页进行脱机处理。

    90、一方面,所述故障处理单元用于对所述目标待测试区域对应的内存页进行冗余修复;其中,所述冗余修复包括单设备数据校正、自适应双设备数据校正,后封装修复或内存镜像。

    91、本发明实施例还提供了一种服务器内存故障的检测设备,包括:

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

    93、处理器,用于执行所述计算机程序以实现如上述服务器内存故障的检测方法步骤。

    94、本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述服务器内存故障的检测方法的步骤。

    95、本发明实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述服务器内存故障的检测方法的步骤。

    96、由上述技术方案可以看出,周期性巡检存在硬故障的目标内存单元,并对目标内存单元所在的内存页进行脱机处理,考虑到在先验错误附近的内存单元出现错误的概率可能会增加,因此可以对与目标内存单元相邻的内存单元进行检测。在与目标内存单元相邻的内存单元存在硬故障的情况下,对硬故障单元所在的内存页进行脱机处理。为了识别故障是否容易扩散,可以进一步对目标内存单元以及硬故障单元所在的行列区域进行检测。在目标内存单元以及硬故障单元所在的行列区域中出现硬故障单元的个数大于或等于设定阈值的情况下,说明该行列区域容易出现故障,为了防止错误扩散,可以对行列区域对应的内存页进行脱机处理。

    97、本发明的有益效果在于,对存在硬故障的目标内存单元所在的内存页进行脱机处理后,通过引入更主动的检测机制,来检测目标内存单元周边的内存单元,能够更早地识别出现硬故障的内存单元,显著减少了从故障发生到被检测到的延迟。通过对风险高的行列区域对应的内存页进行脱机处理,有助于防止错误扩散,并降低数据损坏的风险。本发明有效的减少了因内存故障引起的系统不稳定和不可纠正错误事件的发生,提升了整体系统的稳定性和可靠性。


    技术特征:

    1.一种服务器内存故障的检测方法,其特征在于,包括:

    2.根据权利要求1所述的服务器内存故障的检测方法,其特征在于,周期性巡检存在硬故障的目标内存单元包括:

    3.根据权利要求2所述的服务器内存故障的检测方法,其特征在于,按照设定的第二时间间隔对所述第二存储空间中记录的地址所对应的第二内存单元进行故障检测,将存在故障的第二内存单元判定为硬故障包括:

    4.根据权利要求3所述的服务器内存故障的检测方法,其特征在于,还包括:

    5.根据权利要求2所述的服务器内存故障的检测方法,其特征在于,在与所述目标内存单元相邻的内存单元存在硬故障的情况下,对硬故障单元所在的内存页进行脱机处理包括:

    6.根据权利要求5所述的服务器内存故障的检测方法,其特征在于,在所述目标内存单元以及所述硬故障单元所在的行列区域中出现硬故障单元的个数大于或等于设定阈值的情况下,对所述行列区域对应的内存页进行脱机处理包括:

    7.根据权利要求2至6任意一项所述的服务器内存故障的检测方法,其特征在于,还包括:

    8.根据权利要求7所述的服务器内存故障的检测方法,其特征在于,基于所有存在硬故障的内存单元的分布情况,确定出各待测试区域包括:

    9.根据权利要求8所述的服务器内存故障的检测方法,其特征在于,基于所述k阶距离、目标待测试点的k阶邻域中包含的各待测试点与所述目标待测试点之间的距离,确定出所述目标待测试点的离群值包括:

    10.根据权利要求7所述的服务器内存故障的检测方法,其特征在于,依据各待测试区域对应的内存单元的个数以及存在硬故障的内存单元的个数,确定出各待测试区域各自对应的故障密度包括:

    11.根据权利要求7所述的服务器内存故障的检测方法,其特征在于,对所述目标待测试区域对应的内存页进行故障处理包括:

    12.根据权利要求7所述的服务器内存故障的检测方法,其特征在于,对所述目标待测试区域对应的内存页进行故障处理包括:

    13.一种服务器内存故障的检测装置,其特征在于,包括巡检单元、第一脱机单元、第二脱机单元和第三脱机单元;

    14.一种服务器内存故障的检测设备,其特征在于,包括:

    15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至12任意一项所述服务器内存故障的检测方法的步骤。


    技术总结
    本发明涉及计算机技术领域,公开了一种服务器内存故障的检测方法、装置、设备和介质,周期性巡检存在硬故障的目标内存单元,并对目标内存单元所在的内存页进行脱机处理。在与目标内存单元相邻的内存单元存在硬故障时,对硬故障单元所在的内存页进行脱机处理。在目标内存单元以及硬故障单元所在的行列区域中出现硬故障单元的个数大于或等于设定阈值时,对行列区域对应的内存页进行脱机处理。通过检测目标内存单元周边的内存单元,能够更早地识别出现硬故障的内存单元,显著减少了从故障发生到被检测到的延迟。通过对风险高的行列区域对应的内存页进行脱机处理,有助于防止错误扩散,并降低数据损坏的风险,提升了整体系统的稳定性和可靠性。

    技术研发人员:李盛新,李道童,张炳会,贾帅帅,孙秀强,于佳明,陈衍东
    受保护的技术使用者:苏州元脑智能科技有限公司
    技术研发日:
    技术公布日:2024/11/26
    转载请注明原文地址:https://tc.8miu.com/read-26298.html

    最新回复(0)