CN117312041B - 内存注错方法、装置、计算机设备和存储介质 - Google Patents

内存注错方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN117312041B
CN117312041B CN202311599985.XA CN202311599985A CN117312041B CN 117312041 B CN117312041 B CN 117312041B CN 202311599985 A CN202311599985 A CN 202311599985A CN 117312041 B CN117312041 B CN 117312041B
Authority
CN
China
Prior art keywords
memory
kernel
memory space
user
mode
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.)
Active
Application number
CN202311599985.XA
Other languages
English (en)
Other versions
CN117312041A (zh
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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology 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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311599985.XA priority Critical patent/CN117312041B/zh
Publication of CN117312041A publication Critical patent/CN117312041A/zh
Application granted granted Critical
Publication of CN117312041B publication Critical patent/CN117312041B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及一种内存注错方法、装置、计算机设备和存储介质。方法包括:获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。采用本申请可以同时在内核态和用户态的内存空间注错,解决了传统技术中,无法注入内核态内存空间的内存错误的问题。

Description

内存注错方法、装置、计算机设备和存储介质
技术领域
本申请涉及服务器内存注错技术领域,特别是涉及一种内存注错方法、装置、计算机设备和存储介质。
背景技术
随着计算机技术和网络技术的飞速发展,数据中心的规模变得越来越大,一个机房中的机器有成千上万台,数量规模极其庞大。随着数据中心服务器数量的不断增大,数据中心的运维工作量和复杂度也呈现指数级增长。其中服务器部件故障会直接影像服务器的正常运行,频繁宕机给运维带来极大的困扰。尤其是内存故障,在整个部件故障占比也是排名靠前的,且一旦出现内存故障问题很有可能导致宕机。
内存故障存在一定的随机性,分布在内存不固定的Cell中,需要足够大的服务器基数才能采集到合适的故障样本数据,基于此,部分厂商提供了内存注错工具,但此类工具都是运行于用户态,只能实现用户态内存空间的注错,无法注入内核态内存空间的内存错误。
发明内容
基于此,有必要针对上述技术问题,提供一种内存注错方法、装置、计算机设备和存储介质。
一种内存注错方法,上述的方法包括:获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
在其中一个实施例中,上述的内核态内存访问信息包括内核态内存访问频率,上述的获取内核态内存空间大小以及内核态内存访问信息,包括:利用扩展的伯克利包过滤器技术获取内核态内存空间大小,并从内核态内存空间拦截内核态空间的数据访问信息;根据内核态空间的数据访问信息确定内核态内存访问频率。
在其中一个实施例中,上述的根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率,包括:根据内核态内存空间大小与内核态内存访问频率的乘积,得到内核态内存空间报错概率。
在其中一个实施例中,上述的用户态内存访问信息包括负载系数以及频率分布系数,上述的获取用户态内存空间大小以及用户态内存访问信息,包括:利用扩展的伯克利包过滤器技术获取用户态内存空间大小以及负载系数,并从内核态内存空间拦截用户态内存的数据访问信息;根据用户态内存的数据访问信息确定频率分布系数。
在其中一个实施例中,上述的根据用户态内存空间大小以及内核态内存访问信息,确定用户态内存空间报错概率,包括:根据用户态内存空间大小、负载系数以及频率分布系数的乘积,确定用户态内存空间报错概率。
在其中一个实施例中,上述的方法还包括:获取物理内存状态数据;根据物理内存状态数据确定物理内存状态对应的内存报错概率。
上述的分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错,包括:根据内核态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到内核态内存运行参数;根据内核态内存运行参数执行内核态内存空间注错;根据用户态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到用户态内存运行参数;根据用户态内存运行参数执行用户态内存空间注错。
在其中一个实施例中,上述的物理内存状态数据包括至少一个样本的物理内存状态数据,各个样本的物理内存状态数据包括至少一个关键因素以及各个关键因素的取值,上述的根据物理内存状态数据确定物理内存状态对应的内存报错概率,包括:根据各个样本对应的各个关键因素的取值以及当前关键因素在各个样本中的取值,确定当前关键因素对内存报错的影响概率估计值;根据当前关键因素在当前样本中的取值以及当前关键因素在各个样本中的取值,确定当前关键因素的条件概率;根据当前关键因素对内存报错的影响概率估计值以及当前关键因素的条件概率,确定物理内存状态对应的内存报错概率。
在其中一个实施例中,上述的方法还包括:根据预先设定的原始周期、目标周期确定注错速率;上述的分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错,包括:根据内核态内存空间报错概率以及注错速率执行内核态内存空间注错;根据用户态内存空间报错概率以及注错速率执行用户态内存空间注错。
在其中一个实施例中,上述的方法还包括:收集注错数据,注错数据包括错误位置信息、错误数量以及错误类型中的至少一个;
根据注错数据进行内存故障预测。
在其中一个实施例中,上述的方法运行于内存操作系统中。
在其中一个实施例中,上述的关键因素包括以下任意一项或多项:内存条数量、单条内存容量、单条内存使用率、本次开机内存运行时间影响因子、内存已使用时间影响因子、内存类型以及内存读写频次。
在其中一个实施例中,上述的方法还包括:获取历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长;根据历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长,确定本次开机内存运行时间影响因子的取值;获取历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长;根据历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长,确定内存已使用时间影响因子的取值。
一种内存注错装置,上述的装置包括:第一获取模块,用于获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;第二获取模块,用于获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;注错模块,用于分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
上述内存注错方法、装置、计算机设备和存储介质,通过获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。采用本申请可以对内核态内存空间的运行特征以及用户态的内存运行特征进行分析,根据分析结果确定内存报错概率,实现同时在内核态和用户态的内存空间注错,解决了传统技术中,无法注入内核态内存空间的内存错误的问题。
附图说明
图1为一个实施例中内存注错方法的流程示意图;
图2为另一个实施例中内存注错方法的流程示意图;
图3为一个实施例中根据物理内存状态数据确定物理内存状态对应的内存报错概率步骤的流程示意图;
图4为一个实施例中内存注错装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,如图1所示,提供了一种内存注错方法,包括以下步骤:S11、获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率。
本申请中,上述的内核态内存访问信息是指与内核态内存空间访问相关的信息,比如,访问的频次以及数据量、访问的时间以及访问的数据的地址信息等。上述的内核态内存空间报错概率是指内核态内存空间出现故障的概率。
本申请中,为了系统运行的安全与稳定,操作系统和应用的进程寻址空间分为用户态内存空间与内核态内存空间。内核态内存空间主要负责内核相关的进程寻址,而用户态内存空间主要负责用户相关的进程寻址。内核态内存空间访问特征是比较频繁且密集,由于几乎所有的数据都要经过内核态内存空间,再由内核态内存空间拷贝到用户内存空间,所以内核态内存空间的内存访问频率要比用户态内存空间的要高,访问和使用频率越高,内存报错概率将越大。因此,内核态内存空间大小以及内核态内存访问信息能够影响内核态内存空间的报错概率。本申请可以通过内核态内存空间大小以及内核态内存访问信息计算得到内核态内存空间的报错概率。
S12、获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率。
本申请中,上述的用户态内存访问信息是指与用户态内存空间的访问相关的信息,例如,用户态内存空间的访问频率、访问时间、数据量、访问的地址信息等。
用户态内存空间与内核态内存空间访问特征不同,用户态内存空间的访问频次主要看用户业务负载,若负载较高,内存访问频次就高,反而内存访问频次就低。运行分析模块需要先对服务器历史运行负载进行分析,获取用户态内存空间负载,以及访问频率分布。若访问频率分布较为集中,则需要相应提高频率系数。
因此,本申请可以根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率。
S13、分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
本申请中,上述的执行内核态内存空间注错以及用户态内存空间注错是指为了模拟内存出错的过程,根据内存出错的概率将错误信息注入内存空间。
本申请具体可以根据注错区域以及注错概率执行内核态内存空间注错以及用户态内存空间注错。
在其中一个实施例中,上述的内核态内存访问信息包括内核态内存访问频率,上述的获取内核态内存空间大小以及内核态内存访问信息,可以包括:利用扩展的伯克利包过滤器技术获取内核态内存空间大小,并从内核态内存空间拦截内核态空间的数据访问信息;根据内核态空间的数据访问信息确定内核态内存访问频率。
本申请中,上述的扩展的伯克利包过滤器为ebpf(extended Berkeley PacketFilter)。ebpf技术的原理是通过在内核空间中运行一个解释器,来编译ebpf程序,并将其作为内核模块加载到系统中。ebpf程序可以检查运行在内核环境中的每个数据包,并执行指定的任务,比如释放数据包、重定向数据包或记录数据包等。由于ebpf程序运行在内核空间中,因此可以访问内核的数据结构和系统调用,并且可以快速处理大量的数据包。
本申请中,几乎所有的数据都要经过内核态内存空间,再由内核态内存空间拷贝到用户态内存空间,而通过ebpf技术可以在数据经过内核态内存空间时,即拦截数据访问信息,无需等到数据复制到用户态内存空间。进一步根据拦截的数据访问信息,得到内核态内存访问频率,进一步结合内核态内存空间大小,确定内核态内存空间的报错概率。
本申请中,由于ebpf程序运行在内核态,所以为了安全,ebpf程序中不能随意调用内核函数,只能调用ebpf提供的辅助函数(helper functions),因此通过修正helper函数,实现上述的拦截内核态空间的数据访问信息得功能,以便最终实现修改内核和用户态任意指定的寄存器和内存地址的数据,确保内存注错成功。
因此,基于ebpf技术实现的内存注错具有两点主要优势:一是可以同时访问内核态和用户态内存地址空间,二是可以基于动态代码注入特性实现动态内存注错机制。而传统技术中的内存注错工具无法访问内核态空间。
在其中一个实施例中,上述的根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率,可以包括:根据内核态内存空间大小与内核态内存访问频率的乘积,得到内核态内存空间报错概率。
本申请中,可以将上述的内核态内存空间大小SPc与访问频率系数FREQc相乘,得到内核态内存空间报错概率Rc:Rc=SPc*FREQc
本申请中,由于内核态空间大小与内核态内存访问频率能够影响内核态内存空间的报错概率,因此,可以根据内核态内存空间大小与内核态内存访问频率的乘积,确定内核态内存空间报错概率。
在其中一个实施例中,上述的用户态内存访问信息包括负载系数以及频率分布系数,获取用户态内存空间大小以及用户态内存访问信息,包括:利用扩展的伯克利包过滤器技术获取用户态内存空间大小以及负载系数,并从内核态内存空间拦截用户态内存的数据访问信息;根据用户态内存的数据访问信息确定频率分布系数。
本申请中,上述的负载系数是指用户业务负载。上述的频率分布系数是指用户态内核空间的访问频率的分布情况。
本申请可以通过ebpf技术拦截对用户态内存空间的数据访问请求,提取其中的数据访问信息。本申请具体根据方法频率的集中情况确定频率分布系数。例如,若访问频率分布较为集中,则需要相应提高频率系数。
本申请中,通过ebpf技术既可以访问内核态内存空间,又可以访问用户态内存空间,并且,ebpf技术性能损耗小,可以直接在内核层面拦截数据,进而修改内存数据。具体而言,通常操作系统中的应用都是使用用户态的内存,网络传输来的数据先通过内核再到用户区域,至少要两次读写,通过ebpf技术,直接到从内核就可以直接拦截了,本身不影响网络数据的正常传输。
本申请通过利用ebpf技术能够在内核态和用户态内存地址空间的寻址,并自动识别内核态和用户态内存数据特征,实现动态内存注错,更真实的模拟内存注错环境,并避免了人工操作、交互的复杂度,提升了内存注错的真实性,实现自动化注错。
在其中一个实施例中,上述的根据用户态内存空间大小以及内核态内存访问信息,确定用户态内存空间报错概率,可以包括:根据用户态内存空间大小、负载系数以及频率分布系数的乘积,确定用户态内存空间报错概率。
本申请中,用户态内存空间的访问频次主要看用户业务负载,若负载较高,内存访问频次就高,反而内存访问频次就低。运行分析模块需要先对服务器历史运行负载进行分析,获取用户态内存空间负载,以及访问频率分布。若访问频率分布较为集中,则需要相应提高频率系数。
本申请中,可以根据用户态内存空间大小SPu、负载系数LOADu与频率分布系数Fu三者相乘得出用户态内存空间报错概率Ru:Ru=SPu*LOADu*Fu
在其中一个实施例中,如图2所示,上述的方法还可以包括:S21、获取物理内存状态数据;S22、根据物理内存状态数据确定物理内存状态对应的内存报错概率。
分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错,包括:S23、根据内核态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到内核态内存运行参数;S24、根据内核态内存运行参数执行内核态内存空间注错;S25、根据用户态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到用户态内存运行参数;S26、根据用户态内存运行参数执行用户态内存空间注错。
本申请中,上述的物理内存状态数据是指例如内存条数、单条内存容量以及内存使用率等数据。
本申请根据物理内存状态数据确定物理内存状态对应的内存报错概率可以分析各个状态数据对内存报错的影响程度,根据各个状态数据对内存报错的影响程度确定最终的物理内存状态对应的内存报错概率。
上述的内核态内存运行参数是指内核态内存报错的最终概率。上述的用户态内存运行参数是指用户态内存报错的最终概率。这里的最终概率是指结合了物理内存状态数据的分析结果得到的内存报错概率。后续根据该最终概率以及需要读写的数据以及读写的地址进行注错。
在其中一个实施例中,如图3所示,上述的物理内存状态数据包括至少一个样本的物理内存状态数据,各个样本的物理内存状态数据包括至少一个关键因素以及各个关键因素的取值,上述的根据物理内存状态数据确定物理内存状态对应的内存报错概率,可以包括:S31、根据各个样本对应的各个关键因素的取值以及当前关键因素在各个样本中的取值,确定当前关键因素对内存报错的影响概率估计值;S32、根据当前关键因素在当前样本中的取值以及当前关键因素在各个样本中的取值,确定当前关键因素的条件概率;S33、根据当前关键因素对内存报错的影响概率估计值以及当前关键因素的条件概率,确定物理内存状态对应的内存报错概率。
本申请中,上述的关键因素可以包括内存条数量、单条内存容量以及单条内存使用率等因素。
本申请中,上述的一个样本是指一台设备的内存。上述的物理内存状态数据是指对多个样本进行采集的数据。上述的关键因素是指会影响内存的报错概率的因素。例如,上述的关键因素可以为内存条数量,则对应的取值为具体各个样本的内存条的数目。
具体地,上述的根据各个样本对应的各个关键因素的取值以及当前关键因素在各 个样本中的取值,确定当前关键因素对内存报错的影响概率估计值,可以通过以下公式计 算得到:,其中,为当前关键因素对内存报错的影响概率估计值。表示因 素的取值组成的集合。表示所有关键因素在各个样本中取值的集合。其中,,其中,N为样本总数。xn为当前关键因素在第n 个样本中的取值。为第n个样本中各个关键因素的取值的和。
示例性地,假设关键因素包括、/>、/>、/>以及/>。当前关键因素为/>。其中,
对样本1进行数据采集得到上述的各个关键因素对应的取值分别为C1、R1、Fc1以及D1
对样本2进行数据采集得到上述的各个关键因素对应的取值分别为C2、R2、Fc2以及D2
对样本3进行数据采集得到上述的各个关键因素对应的取值分别为C3、R3、Fc3以及D3
则上述的;上述的/>
进一步地,上述的根据当前关键因素在当前样本中的取值以及当前关键因素在各个样本中的取值,确定当前关键因素的条件概率,可以通过以下公式计算得到(假设各个因素之间是条件相互独立的):,其中,/>表示关键因素取值为xi(例如因素的取值为 0,1,2……中的某一个)的样本组成的集合。在这里当前关键因素取值为C1,继续以上述假设为例,则当前关键因素的条件概率为:/>
上述的根据当前关键因素对内存报错的影响概率估计值以及当前关键因素的条件概率,确定物理内存状态对应的内存报错概率,可以通过以下公式计算得到:,其中,i和j代表第几个关键因素的取值。
在其中一个实施例中,上述的方法还可以包括:根据预先设定的原始周期、目标周期确定注错速率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错,包括:根据内核态内存空间报错概率以及注错速率执行内核态内存空间注错;根据用户态内存空间报错概率以及注错速率执行用户态内存空间注错。
本申请中,上述的原始周期是指在真实运行环境中获取所需数据的真实周期。上述的目标周期是指在模拟环境中跑出原始周期所获取的数据所需的预期时间。
本申请中,可以接收用户定义的周期参数。由于内存报错是比较随机的,可能很长时间都不会发生一次,为了快速获取真实环境数据,用户可导入周期参数,来快速获取真实内存注错数据。周期参数包括原始周期和目标周期,原始周期为在真实运行环境中获取所需数据的真实周期,例如10个月;而在模拟环境中跑出原始周期的数据预期的时间,例如1个月。如此则需要将模拟环境内存注错周期压缩10倍,以达到快速获取真实数据的目的。注错执行模块调用注错程序模块实现自定义动态注错机制,满足用户在短时间内获取真实注错数据的需求。
上述的根据预先设定的原始周期、目标周期确定注错速率,可以包括:根据预先设定的原始周期、目标周期确定注错速率的压缩倍率。
上述的根据内核态内存空间报错概率以及注错速率执行内核态内存空间注错,可以包括:根据压缩倍率调整当前的注错速率。
例如,压缩倍率是10,执行注错时需要将当前的注错速率加速10倍进行注错。
本申请通过该实施方式,可以提升注错数据的获取效率,满足用户在短时间内获取真实注错数据的需求。
在其中一个实施例中,上述的方法还可以包括:收集注错数据,注错数据包括错误位置信息、错误数量以及错误类型中的至少一个;根据注错数据进行内存故障预测。
本申请中,可通过读取系统信息日志获取和定位内存错误精准位置信息以及注错数量和类型等信息。
具体可以通过执行如下命令:
grep"[0-9]"/sys/devices/system/edac/mc/mc*/csrow*/ch*_ce_count。
可获取如下注错信息:/sys/devices/system/edac/mc/mc2/csrow5/ch0_ce_count:650,其中,count:代表内存错误数量;mc:代表在第几个CPU发生报错;csrow:代表内存通道。
ch*:代表通道内的第几根内存。
上述的根据注错数据进行内存故障预测,可以包括:将获取的注错数据与当前周期的内存故障数据进行计算相似度,根据相似度计算结果的加权,确定下一周期的内存故障的预测结果。
本申请可以将注错数据统一存储,作为数据积累为后续内存故障诊断和预测提供数据支撑。
在其中一个实施例中,上述的方法运行于内存操作系统中。
本申请中,上述的方法可以是在服务器之上运行的操作系统,该方式容易导致其他部件在内存注错过程中产生的干扰。例如,硬盘数据本身带来的错误。
本申请为了降低其他部件在内存注错过程中产生的干扰,将上述的方法运行在RAMOS(内存操作系统)中,无需硬盘即可运行的内存操作系统。避免其他部件的干扰,如此可获取更为真实的内存注错数据。
在其中一个实施例中,上述的关键因素包括以下任意一项或多项:内存条数量、单条内存容量、单条内存使用率、本次开机内存运行时间影响因子、内存已使用时间影响因子、内存类型以及内存读写频次。
本申请中,上述的方法包括物理内存状态分析、内核态内存空间分析以及用户态内存空间分析,根据三种内存分析法分析得出内核态内存运行参数以及用户态内存运行参数,实现动态内存注错机制。其中,物理内存状态分析: 物理内存状态分析主要包含如下关键因素:内存条数量(N):在相同参数的单条内存条件下,数量越多,内存错误产生的概率越大,在算法公式中可添加系数后直接作为乘数。
单条内存容量(Ci):一般情况下,内存容量越大,内存芯片数量越大,同时,内存存储数据的Rank、Bank、Row、Column、Cell等不同维度的内存单元数量就越多,内存错误产生的概率就越大,在算法公式中可添加系数后直接作为乘数。
单条内存使用率(Ri):内存使用率的使用率,会直接影响内存的报错概率。一般情况下,内存使用率越高,内存读写越频繁,内存出错的概率将越大,在算法公式中可添加系数后直接作为乘数。
本次开机内存运行时间(Tc):内存运行时间越长,因为受温度、电压、电磁、噪音、粉尘等因素的影响,内存出错的概率也会呈现上涨趋势,因内存运行时间长而增加的内存报错率为Rc,可与相乘作为内存报错的相加系数。
本次开机内存运行时间影响因子Fc=Tc*Rc,内存已使用时间():内存总的运行时间越长,因为受外部因素影响,内存寿命也会降低,出错概率也会呈现上涨趋势。因内存总运行时间长而增加的内存报错率为/>,可与相乘作为内存报错的相加系数。
内存已使用时间影响因子=/>*/>,内存类型(DDR3/DDR4/DDR5):随着内存技术的迭代更新,内存工艺及质量也得到保障,内存出错概率随内存世代增长而变小,在算法公式中可添加系数后直接作为乘数。
经过以上分析可以得出影响内存故障的因素有:单条内存容量、单条内存使用率、本次开机内存运行时间、内存已使用时间、内存类型等。这些因素都有可能会导致内存故障,故导致内存故障的可能是一个因素或者多个因素共同作用的结果。影响内存故障的关键因素可用下表1表示:
表1
在其中一个实施例中,上述的方法还可以包括:获取历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长;根据历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长,确定本次开机内存运行时间影响因子的取值;获取历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长;根据历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长,确定内存已使用时间影响因子的取值。
本申请中,上述的根据历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长,确定本次开机内存运行时间影响因子的取值,可以包括:根据历史开机内存运行时长以及各次开机期间的内存报错次数,确定因内存运行时间长而增加的内存报错率;根据因内存运行时间长而增加的内存报错率与本次开机内存运行时长,确定上述的本次开机内存运行时间影响因子的取值。
上述的根据历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长,确定内存已使用时间影响因子的取值,可以包括:
根据历史内存总运行时长以及各次运行时长对应的内存报错次数,确定因内存总运行时间长而增加的内存报错概率;根据因内存总运行时间长而增加的内存报错概率以及内存已使用时间,确定上述的内存已使用时间影响因子的取值。
本申请通过分析历史的内存使用时长确定内存使用时长对内存故障的影响程度,以实现更加真实地模拟内存故障的场景。
在一个实施例中,如图4所示,提供了一种内存注错装置,包括:第一获取模块11、第二获取模块12和注错模块13,其中:第一获取模块11,用于获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;第二获取模块12,用于获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;
注错模块13,用于分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
在其中一个实施例中,上述的内核态内存访问信息包括内核态内存访问频率,上述的第一获取模块11可以利用扩展的伯克利包过滤器技术获取内核态内存空间大小,并从内核态内存空间拦截内核态空间的数据访问信息,根据内核态空间的数据访问信息确定内核态内存访问频率。
在其中一个实施例中,上述的第一获取模块11还可以根据内核态内存空间大小与内核态内存访问频率的乘积,得到内核态内存空间报错概率。
在其中一个实施例中,上述的用户态内存访问信息包括负载系数以及频率分布系数,上述的第二获取模块12可以利用扩展的伯克利包过滤器技术获取用户态内存空间大小以及负载系数,并从内核态内存空间拦截用户态内存的数据访问信息,根据用户态内存的数据访问信息确定频率分布系数。
在其中一个实施例中,上述的第二获取模块12还可以根据用户态内存空间大小、负载系数以及频率分布系数的乘积,确定用户态内存空间报错概率。
在其中一个实施例中,上述的第二获取模块12还可以获取物理内存状态数据,根据物理内存状态数据确定物理内存状态对应的内存报错概率,上述的注错模块13可以根据内核态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到内核态内存运行参数,根据内核态内存运行参数执行内核态内存空间注错,根据用户态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到用户态内存运行参数,根据用户态内存运行参数执行用户态内存空间注错。
在其中一个实施例中,上述的物理内存状态数据包括至少一个样本的物理内存状态数据,各个样本的物理内存状态数据包括至少一个关键因素以及各个关键因素的取值,上述的第二获取模块12还可以根据各个样本对应的各个关键因素的取值以及当前关键因素在各个样本中的取值,确定当前关键因素对内存报错的影响概率估计值,根据当前关键因素在当前样本中的取值以及当前关键因素在各个样本中的取值,确定当前关键因素的条件概率,根据当前关键因素对内存报错的影响概率估计值以及当前关键因素的条件概率,确定物理内存状态对应的内存报错概率。
在其中一个实施例中,上述的注错模块13还可以根据预先设定的原始周期、目标周期确定注错速率,根据内核态内存空间报错概率以及注错速率执行内核态内存空间注错,根据用户态内存空间报错概率以及注错速率执行用户态内存空间注错。
在其中一个实施例中,上述的注错模块13还可以收集注错数据,注错数据包括错误位置信息、错误数量以及错误类型中的至少一个,根据注错数据进行内存故障预测。
在其中一个实施例中,上述的方法运行于内存操作系统中。
在其中一个实施例中,上述的关键因素包括以下任意一项或多项:内存条数量、单条内存容量、单条内存使用率、本次开机内存运行时间影响因子、内存已使用时间影响因子、内存类型以及内存读写频次。
在其中一个实施例中,上述的注错模块13还可以获取历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长,根据历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长,确定本次开机内存运行时间影响因子的取值,获取历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长,根据历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长,确定内存已使用时间影响因子的取值。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储智能家居设备的运行数据等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现内存注错方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现以下步骤:获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
在一个实施例中,上述的内核态内存访问信息包括内核态内存访问频率,处理器执行计算机程序实现上述的获取内核态内存空间大小以及内核态内存访问信息步骤时,具体实现以下步骤:利用扩展的伯克利包过滤器技术获取内核态内存空间大小,并从内核态内存空间拦截内核态空间的数据访问信息;根据内核态空间的数据访问信息确定内核态内存访问频率。
在一个实施例中,处理器执行计算机程序实现上述的根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率步骤时,具体实现以下步骤:
根据内核态内存空间大小与内核态内存访问频率的乘积,得到内核态内存空间报错概率。
在一个实施例中,上述的用户态内存访问信息包括负载系数以及频率分布系数,处理器执行计算机程序实现上述的获取用户态内存空间大小以及用户态内存访问信息步骤时,具体实现以下步骤:利用扩展的伯克利包过滤器技术获取用户态内存空间大小以及负载系数,并从内核态内存空间拦截用户态内存的数据访问信息;根据用户态内存的数据访问信息确定频率分布系数。
在一个实施例中,处理器执行计算机程序实现上述的根据用户态内存空间大小以及内核态内存访问信息,确定用户态内存空间报错概率步骤时,具体实现以下步骤:根据用户态内存空间大小、负载系数以及频率分布系数的乘积,确定用户态内存空间报错概率。
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:获取物理内存状态数据;根据物理内存状态数据确定物理内存状态对应的内存报错概率;处理器执行计算机程序实现上述的分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错步骤时,具体实现以下步骤:根据内核态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到内核态内存运行参数;根据内核态内存运行参数执行内核态内存空间注错;根据用户态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到用户态内存运行参数;根据用户态内存运行参数执行用户态内存空间注错。
在一个实施例中,上述的物理内存状态数据包括至少一个样本的物理内存状态数据,各个样本的物理内存状态数据包括至少一个关键因素以及各个关键因素的取值,处理器执行计算机程序实现上述的根据物理内存状态数据确定物理内存状态对应的内存报错概率步骤时,具体实现以下步骤:根据各个样本对应的各个关键因素的取值以及当前关键因素在各个样本中的取值,确定当前关键因素对内存报错的影响概率估计值;根据当前关键因素在当前样本中的取值以及当前关键因素在各个样本中的取值,确定当前关键因素的条件概率;根据当前关键因素对内存报错的影响概率估计值以及当前关键因素的条件概率,确定物理内存状态对应的内存报错概率。
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:根据预先设定的原始周期、目标周期确定注错速率;处理器执行计算机程序实现上述的分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错步骤时,具体实现以下步骤:根据内核态内存空间报错概率以及注错速率执行内核态内存空间注错;根据用户态内存空间报错概率以及注错速率执行用户态内存空间注错。
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:收集注错数据,注错数据包括错误位置信息、错误数量以及错误类型中的至少一个;
根据注错数据进行内存故障预测。
在一个实施例中,上述的方法运行于内存操作系统中。
在一个实施例中,上述的关键因素包括以下任意一项或多项:内存条数量、单条内存容量、单条内存使用率、本次开机内存运行时间影响因子、内存已使用时间影响因子、内存类型以及内存读写频次。
在一个实施例中,处理器执行计算机程序时,具体还实现以下步骤:获取历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长;根据历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长,确定本次开机内存运行时间影响因子的取值;获取历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长;根据历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长,确定内存已使用时间影响因子的取值。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取内核态内存空间大小以及内核态内存访问信息,并根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率;获取用户态内存空间大小以及用户态内存访问信息,并根据用户态内存空间大小以及用户态内存访问信息,确定用户态内存空间报错概率;分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错。
在一个实施例中,上述的内核态内存访问信息包括内核态内存访问频率,计算机程序被处理器执行实现上述的获取内核态内存空间大小以及内核态内存访问信息步骤时,具体实现以下步骤:利用扩展的伯克利包过滤器技术获取内核态内存空间大小,并从内核态内存空间拦截内核态空间的数据访问信息;根据内核态空间的数据访问信息确定内核态内存访问频率。
在一个实施例中,计算机程序被处理器执行实现上述的根据内核态内存空间大小以及内核态内存访问信息,确定内核态内存空间报错概率步骤时,具体实现以下步骤:
根据内核态内存空间大小与内核态内存访问频率的乘积,得到内核态内存空间报错概率。
在一个实施例中,上述的用户态内存访问信息包括负载系数以及频率分布系数,计算机程序被处理器执行实现上述的获取用户态内存空间大小以及用户态内存访问信息步骤时,具体实现以下步骤:利用扩展的伯克利包过滤器技术获取用户态内存空间大小以及负载系数,并从内核态内存空间拦截用户态内存的数据访问信息;根据用户态内存的数据访问信息确定频率分布系数。
在一个实施例中,计算机程序被处理器执行实现上述的根据用户态内存空间大小以及内核态内存访问信息,确定用户态内存空间报错概率步骤时,具体实现以下步骤:
根据用户态内存空间大小、负载系数以及频率分布系数的乘积,确定用户态内存空间报错概率。
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:获取物理内存状态数据;根据物理内存状态数据确定物理内存状态对应的内存报错概率;计算机程序被处理器执行实现上述的分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错步骤时,具体实现以下步骤:根据内核态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到内核态内存运行参数;根据内核态内存运行参数执行内核态内存空间注错;根据用户态内存空间报错概率与物理内存状态对应的内存报错概率的乘积,得到用户态内存运行参数;根据用户态内存运行参数执行用户态内存空间注错。
在一个实施例中,上述的物理内存状态数据包括至少一个样本的物理内存状态数据,各个样本的物理内存状态数据包括至少一个关键因素以及各个关键因素的取值,计算机程序被处理器执行实现上述的根据物理内存状态数据确定物理内存状态对应的内存报错概率步骤时,具体实现以下步骤:根据各个样本对应的各个关键因素的取值以及当前关键因素在各个样本中的取值,确定当前关键因素对内存报错的影响概率估计值;根据当前关键因素在当前样本中的取值以及当前关键因素在各个样本中的取值,确定当前关键因素的条件概率;根据当前关键因素对内存报错的影响概率估计值以及当前关键因素的条件概率,确定物理内存状态对应的内存报错概率。
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:根据预先设定的原始周期、目标周期确定注错速率;计算机程序被处理器执行实现上述的分别根据内核态内存空间报错概率以及用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错步骤时,具体实现以下步骤:根据内核态内存空间报错概率以及注错速率执行内核态内存空间注错;根据用户态内存空间报错概率以及注错速率执行用户态内存空间注错。
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:收集注错数据,注错数据包括错误位置信息、错误数量以及错误类型中的至少一个;根据注错数据进行内存故障预测。
在一个实施例中,上述的方法运行于内存操作系统中。
在一个实施例中,上述的关键因素包括以下任意一项或多项:内存条数量、单条内存容量、单条内存使用率、本次开机内存运行时间影响因子、内存已使用时间影响因子、内存类型以及内存读写频次。
在一个实施例中,计算机程序被处理器执行时,具体还实现以下步骤:获取历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长;根据历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长,确定本次开机内存运行时间影响因子的取值;获取历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长;根据历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长,确定内存已使用时间影响因子的取值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (15)

1.一种内存注错方法,其特征在于,所述方法包括:
获取内核态内存空间大小以及内核态内存访问信息,并根据所述内核态内存空间大小以及所述内核态内存访问信息,确定内核态内存空间报错概率;
获取用户态内存空间大小以及用户态内存访问信息,并根据所述用户态内存空间大小以及所述用户态内存访问信息,确定用户态内存空间报错概率;
分别根据所述内核态内存空间报错概率以及所述用户态内存空间报错概率,对需要读写的数据以及读写的地址执行内核态内存空间注错以及用户态内存空间注错。
2.根据权利要求1所述的方法,其特征在于,所述内核态内存访问信息包括内核态内存访问频率,所述获取内核态内存空间大小以及内核态内存访问信息,包括:
利用扩展的伯克利包过滤器技术获取所述内核态内存空间大小,并从所述内核态内存空间拦截内核态空间的数据访问信息;
根据所述内核态空间的数据访问信息确定所述内核态内存访问频率。
3.根据权利要求2所述的方法,其特征在于,所述根据所述内核态内存空间大小以及所述内核态内存访问信息,确定内核态内存空间报错概率,包括:
根据所述内核态内存空间大小与所述内核态内存访问频率的乘积,得到所述内核态内存空间报错概率。
4.根据权利要求1所述的方法,其特征在于,所述用户态内存访问信息包括负载系数以及频率分布系数,所述获取用户态内存空间大小以及用户态内存访问信息,包括:
利用扩展的伯克利包过滤器技术获取所述用户态内存空间大小以及所述负载系数,并从所述内核态内存空间拦截用户态内存的数据访问信息;
根据所述用户态内存的数据访问信息确定所述频率分布系数。
5.根据权利要求4所述的方法,其特征在于,所述根据所述用户态内存空间大小以及所述内核态内存访问信息,确定用户态内存空间报错概率,包括:
根据所述用户态内存空间大小、负载系数以及频率分布系数的乘积,确定所述用户态内存空间报错概率。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取物理内存状态数据;
根据所述物理内存状态数据确定物理内存状态对应的内存报错概率;
所述分别根据所述内核态内存空间报错概率以及所述用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错,包括:
根据所述内核态内存空间报错概率与所述物理内存状态对应的内存报错概率的乘积,得到所述内核态内存运行参数;
根据所述内核态内存运行参数对需要读写的数据以及读写的地址执行所述内核态内存空间注错;
根据所述用户态内存空间报错概率与所述物理内存状态对应的内存报错概率的乘积,得到所述用户态内存运行参数;
根据所述用户态内存运行参数对需要读写的数据以及读写的地址执行所述用户态内存空间注错。
7.根据权利要求6所述的方法,其特征在于,所述物理内存状态数据包括至少一个样本的物理内存状态数据,各个所述样本的物理内存状态数据包括至少一个关键因素以及各个所述关键因素的取值,所述根据所述物理内存状态数据确定物理内存状态对应的内存报错概率,包括:
根据各个所述样本对应的各个关键因素的取值以及当前关键因素在各个所述样本中的取值,确定所述当前关键因素对内存报错的影响概率估计值;
根据所述当前关键因素在当前样本中的取值以及所述当前关键因素在各个所述样本中的取值,确定所述当前关键因素的条件概率;
根据所述当前关键因素对内存报错的影响概率估计值以及所述当前关键因素的条件概率,确定所述物理内存状态对应的内存报错概率。
8.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据预先设定的原始周期、目标周期确定注错速率;
所述分别根据所述内核态内存空间报错概率以及所述用户态内存空间报错概率,执行内核态内存空间注错以及用户态内存空间注错,包括:
根据所述内核态内存空间报错概率以及所述注错速率对需要读写的数据以及读写的地址执行内核态内存空间注错;
根据所述用户态内存空间报错概率以及所述注错速率对需要读写的数据以及读写的地址执行用户态内存空间注错。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
收集注错数据,所述注错数据包括错误位置信息、错误数量以及错误类型中的至少一个;
根据所述注错数据进行内存故障预测。
10.根据权利要求1所述的方法,其特征在于,所述方法运行于内存操作系统中。
11.根据权利要求7所述的方法,其特征在于,所述关键因素包括以下任意一项或多项:
内存条数量、单条内存容量、单条内存使用率、本次开机内存运行时间影响因子、内存已使用时间影响因子、内存类型以及内存读写频次。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
获取历史开机内存运行时长、各次开机期间的内存报错次数以及本次开机时长;
根据所述历史开机内存运行时长、各次开机期间的内存报错次数以及所述本次开机时长,确定本次开机内存运行时间影响因子的取值;
获取历史内存总运行时长、各次运行时长对应的内存报错次数以及当前内存已使用时长;
根据所述历史内存总运行时长、各次运行时长对应的内存报错次数以及所述当前内存已使用时长,确定内存已使用时间影响因子的取值。
13.一种内存注错装置,其特征在于,所述装置包括:
第一获取模块,用于获取内核态内存空间大小以及内核态内存访问信息,并根据所述内核态内存空间大小以及所述内核态内存访问信息,确定内核态内存空间报错概率;
第二获取模块,用于获取用户态内存空间大小以及用户态内存访问信息,并根据所述用户态内存空间大小以及所述用户态内存访问信息,确定用户态内存空间报错概率;
注错模块,用于分别根据所述内核态内存空间报错概率以及所述用户态内存空间报错概率,对需要读写的数据以及读写的地址执行内核态内存空间注错以及用户态内存空间注错。
14.一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至12中任一项所述方法的步骤。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至12中任一项所述的方法的步骤。
CN202311599985.XA 2023-11-28 2023-11-28 内存注错方法、装置、计算机设备和存储介质 Active CN117312041B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311599985.XA CN117312041B (zh) 2023-11-28 2023-11-28 内存注错方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311599985.XA CN117312041B (zh) 2023-11-28 2023-11-28 内存注错方法、装置、计算机设备和存储介质

Publications (2)

Publication Number Publication Date
CN117312041A CN117312041A (zh) 2023-12-29
CN117312041B true CN117312041B (zh) 2024-02-23

Family

ID=89288752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311599985.XA Active CN117312041B (zh) 2023-11-28 2023-11-28 内存注错方法、装置、计算机设备和存储介质

Country Status (1)

Country Link
CN (1) CN117312041B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818626B1 (en) * 2007-01-12 2010-10-19 Oracle America, Inc. Memory error injector and associated methods
CN115729724A (zh) * 2022-11-30 2023-03-03 中电金信软件有限公司 故障注入方法、故障测试系统、电子设备及可读存储介质
CN116069638A (zh) * 2023-01-19 2023-05-05 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法
CN116302755A (zh) * 2023-03-24 2023-06-23 苏州浪潮智能科技有限公司 一种psu注错测试方法、系统、装置及可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7818626B1 (en) * 2007-01-12 2010-10-19 Oracle America, Inc. Memory error injector and associated methods
CN115729724A (zh) * 2022-11-30 2023-03-03 中电金信软件有限公司 故障注入方法、故障测试系统、电子设备及可读存储介质
CN116069638A (zh) * 2023-01-19 2023-05-05 蔷薇大树科技有限公司 一种基于内核态模拟分布式异常状态的方法
CN116302755A (zh) * 2023-03-24 2023-06-23 苏州浪潮智能科技有限公司 一种psu注错测试方法、系统、装置及可读存储介质

Also Published As

Publication number Publication date
CN117312041A (zh) 2023-12-29

Similar Documents

Publication Publication Date Title
CN109284269B (zh) 异常日志分析方法、装置、存储介质及服务器
Ding et al. Log2: A {Cost-Aware} logging mechanism for performance diagnosis
US10970388B2 (en) Discrete processor feature behavior collection
AU2014271274A1 (en) System and method predicting effect of cache on query elapsed response time during application development stage
CN111290919A (zh) 日志文件生成方法、装置、计算机设备和存储介质
US8856754B2 (en) Systems and methods for enhanced profiling of computer applications
CN111240976A (zh) 软件测试方法、装置、计算机设备及存储介质
CN111400164A (zh) 一种软件测试方法及装置
CN114490375A (zh) 应用程序的性能测试方法、装置、设备及存储介质
CN115657946A (zh) Raid顺序写场景下的片外ddr带宽卸载方法、终端及存储介质
US11151013B2 (en) Systems and methods for performance evaluation of input/output (I/O) intensive enterprise applications
CN117312041B (zh) 内存注错方法、装置、计算机设备和存储介质
US8850407B2 (en) Test script generation
Lee et al. Towards scalable performance analysis and visualization through data reduction
CN107193736B (zh) 测试方法、装置、电子设备以及存储介质
US8997048B1 (en) Method and apparatus for profiling a virtual machine
Li et al. From correctable memory errors to uncorrectable memory errors: What error bits tell
CN117009196A (zh) 一种企业级固态硬盘的性能测试方法、测试装置和测试平台
CN109582572A (zh) 一种判断可管理程序在多次执行中进入稳定阶段的方法
Xu et al. Cache-based optimization for block commit of hyperledger fabric
US20030105958A1 (en) Command script instrumentation for logging command execution and the protection of sensitive information
CN112131061A (zh) 一种硬盘背板带宽测量方法和装置
CN113744789B (zh) 一种在研发阶段测试ssd稳定性的方法、系统、设备和介质
CN113157513B (zh) 一种堆内存破坏检测方法、装置、电子设备及存储介质
CN116719682B (zh) 数据保持测试方法和系统、电子设备、存储介质

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
GR01 Patent grant
GR01 Patent grant