System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术涉及服务器内存故障管理,特别涉及一种利用smbios type11显示内存错误信息的方法及系统。
技术介绍
1、随着信息技术的快速发展,服务器作为数据处理和存储的核心设备,在各个领域的应用越来越广泛。而内存作为服务器的重要组成部分,其稳定性和可靠性对于保障服务器的正常运行至关重要。然而,由于内存本身的物理特性和环境因素,内存错误或故障在服务器运行过程中时有发生,给服务器的稳定运行带来了极大的挑战。
2、在现有技术中,当服务器出现内存错误或故障时,通常会采用以下几种方法来进行处理。debug log记录:服务器在启动过程中会生成debug log,其中包含了内存初始化和自检的相关信息,通过查看这些log,可以获取到内存错误的详细信息。屏幕显示错误信息:有些服务器在内存自检过程中,会将错误信息直接显示在屏幕上,以便用户或管理员及时发现问题。ipmi命令打印日志:通过ipmi(intelligent platform management interface)命令,服务器可以将内存错误信息打印成文件,供用户或管理员进行后续分析。
3、尽管上述传统技术在一定程度上能够帮助用户或管理员发现和定位内存错误,但仍然存在以下问题:屏幕显示错误信息的方式受到显示空间的限制,往往无法完整展示所有内存错误的详细信息;通过debug log或ipmi命令打印日志的方式,需要用户或管理员持续监控或定期查看,无法实时获取内存错误的信息;使用debug log或ipmi命令打印日志的方式,需要额外的设备或系统资源来接收和存储
技术实现思路
1、基于此,本专利技术的目的是提出一种利用smbios type11显示内存错误信息的方法及系统,以解决上述提到的问题。
2、根据本专利技术提出的利用smbios type11显示内存错误信息的方法,应用于bios,所述方法包括:
3、在服务器启动时,通过bios的memory training阶段进行内存初始化操作;
4、在内存初始化操作过程中检测内存状态,并根据内存状态判断内存是否存在故障,若存在内存故障,则捕获并记录具体的故障内存位置和内存warning code;
5、将捕获到的内存warning code通过数据表匹配得到对应的报错信息,并将故障内存位置、内存warning code和对应的报错信息整合成一条字符串,设为报错字符串;
6、将整合好的所述报错字符串存储至bios内部的目标string id中;
7、在bios的dxe阶段从所述目标string id中获取所述报错字符串,根据自定义的smbios type11的结构规则,将获取到的所述报错字符串写入smbios type11中,以供在操作系统下通过特定命令随时读取查看内存状态信息。
8、更进一步的,所述将捕获到的内存warning code通过数据表匹配得到对应的报错信息,并将故障内存位置、内存warning code和对应的报错信息整合成一条字符串的步骤包括:
9、访问预先定义的数据表,所述数据表包含内存warning code与对应报错信息的映射关系;
10、在所述数据表中查找与捕获到的内存warning code匹配的报错信息;
11、若在数据表中找到匹配的报错信息,则提取所述报错信息;
12、将故障内存位置、内存warning code和记录的报错信息整合成一条字符串,其中,故障内存位置、内存warning code和报错信息以预定义的格式进行排列。
13、更进一步的,所述将故障内存位置、内存warning code和记录的报错信息整合成一条字符串,其中,故障内存位置、内存warning code和报错信息以预定义的格式进行排列的步骤包括:
14、创建一个空字符串作为报错信息的容器;
15、将故障内存位置信息作为字符串的起始部分;
16、紧接着故障内存位置信息,将内存warning code添加到字符串中;
17、在字符串的末尾或指定位置,将匹配的报错信息添加到字符串中,确保各部分信息之间以适当的分隔符分隔。
18、更进一步的,所述根据自定义的smbios type11的结构规则,将获取到的所述报错字符串写入smbios type11中的步骤包括:
19、在bios的dxe阶段,分配内存空间来存储smbios type11结构,存储的结构包含smbios type11的固定头部信息,以及用于存储所述报错字符串的可变长度字段;
20、将获取到的所述报错字符串按照smbios type11的字段布局写入分配的内存空间。
21、更进一步的,所述根据自定义的smbios type11的结构规则,将获取到的所述报错字符串写入smbios type11中,以供在操作系统下通过特定命令随时读取查看内存状态信息的步骤后还包括:
22、通过smbios提供的接口或机制,读取smbios type 11中的内存状态信息;
23、解析读取到的内存状态信息,并提取出故障内存的位置标识和对应的报错信息;
24、根据位置标识直接定位到具体的内存模块或插槽;
25、将报错信息与预先定义的报错代码表或报错信息库进行匹配,确定具体的报错类型;
26、根据定位到的故障内存位置和确定的报错类型,用户或管理程序进行相应的故障排查和修复操作。
27、更进一步的,所述根据内存状态判断内存是否存在故障的步骤后还包括:
28、若不存在内存故障,则返回空,不往目标string id里面写入数据。
29、更进一步的,所述在dxe阶段从所述目标string id中获取存储的所述报错字符串的步骤后还包括:
30、判断所述目标string id中的报错字符串的值是否为空;
31、若为空,则确定未检测到内存错误,并执行将空值写入smbios type11。
32、本专利技术还提供一种利用smbios type11显示内存错误信息的系统,应用于bios,包括:
33、初始化模块:用于在服务器启动时,通过bios的memory training阶段进行内存初始化操作;
34、内存故障捕获模块:用于在内存初始化操作过程中检测内存状态,并根据内存状态判断内存是否存在故障,若存在内存故障,则捕获并记录具体的故障内存位置和内存warning code;
35、字符串生成模块:用于将捕获到的内存warning code通过数据表匹配得到对应的报错信息,并将故障内存位置、内存warning code和对应的报错信息整合成一条字符串,设为报错字符串;本文档来自技高网...
【技术保护点】
1.一种利用SMBIOS Type11显示内存错误信息的方法,应用于BIOS,其特征在于,所述方法包括:
2.根据权利要求1所述的利用SMBIOS Type11显示内存错误信息的方法,其特征在于,所述将捕获到的内存warning code通过数据表匹配得到对应的报错信息,并将故障内存位置、内存warning code和对应的报错信息整合成一条字符串的步骤包括:
3.根据权利要求2所述的利用SMBIOS Type11显示内存错误信息的方法,其特征在于,所述将故障内存位置、内存warning code和记录的报错信息整合成一条字符串,其中,故障内存位置、内存warning code和报错信息以预定义的格式进行排列的步骤包括:
4.根据权利要求1所述的利用SMBIOS Type11显示内存错误信息的方法,其特征在于,所述根据自定义的SMBIOS Type11的结构规则,将获取到的所述报错字符串写入SMBIOSType11中的步骤包括:
5.根据权利要求1所述的利用SMBIOS Type11显示内存错误信息的方法,其特征在于,所述根据自定义
6.根据权利要求1所述的利用SMBIOS Type11显示内存错误信息的方法,其特征在于,所述根据内存状态判断内存是否存在故障的步骤后还包括:
7.根据权利要求1所述的利用SMBIOS Type11显示内存错误信息的方法,其特征在于,所述在DXE阶段从所述目标String ID中获取存储的所述报错字符串的步骤后还包括:
8.一种利用SMBIOS Type11显示内存错误信息的系统,应用于BIOS,其特征在于,包括:
...【技术特征摘要】
1.一种利用smbios type11显示内存错误信息的方法,应用于bios,其特征在于,所述方法包括:
2.根据权利要求1所述的利用smbios type11显示内存错误信息的方法,其特征在于,所述将捕获到的内存warning code通过数据表匹配得到对应的报错信息,并将故障内存位置、内存warning code和对应的报错信息整合成一条字符串的步骤包括:
3.根据权利要求2所述的利用smbios type11显示内存错误信息的方法,其特征在于,所述将故障内存位置、内存warning code和记录的报错信息整合成一条字符串,其中,故障内存位置、内存warning code和报错信息以预定义的格式进行排列的步骤包括:
4.根据权利要求1所述的利用smbios type11显示内存错误信息的方法,其特征在于,所述根据自定义的smbios type11的结构规则...
【专利技术属性】
技术研发人员:何鑫,唐斌,
申请(专利权)人:深圳市同泰怡信息技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。