anolis8.8内存报错

DRAM(Dynamic Random Access Memory),即动态随机存取存储器,最为常见的系统内存。ECC是“Error Checking and Correcting”的简写,中文名称是“错误检查和纠正”。ECC内存,即应用了能够实现错误检查和纠正技术(ECC)的内存条。EDAC,即Error Detection And Correction(错误检测与纠正)。

内存有两种错误类型分别是CE和UE,CE 是 Correctable Error 的简称, UE是Uncorrectable Error的简称,CE即可恢复的错误,暂不影响系统的正常运行。可以在找时机停机换掉。UE为不可恢复的内存错误,通常会导致宕机。

系统日志

故障确认及定位故障内存槽位

count:不为0的行即代表存在内存错误。
mc:第几个CPU。
csrow:内存通道。
ch*:通道内的第几根内存。

使用edac工具来检测服务器内存故障

随着虚拟化,Redis,BDB内存数据库等应用的普及,现在越来越多的服务器配置了大容量内存,拿DELL的R620来说在配置双路CPU下,其24个内存插槽,支持的内存高达960GB。对于ECC,REG这些带有纠错功能的内存故障检测是一件很头疼的事情,出现故障,还是可以连续运行几个月甚至几年,但如果运气不好,随时都会挂掉,好在linux中提供了一个edac-utils 内存纠错诊断工具,可以用来检查服务器内存潜在的故障。 下面以CentOS为例,介绍下edac-utils 工具的使用. 在使用edac-utils 工具之前,需要先了解服务器的硬件架构,以DELL R620为例,(其它如HP DL360P G8,IBM X3650 M4 机型都使用了 E5-2600 系列CPU,C600 系列芯片组.大致相同) 其CPU内存控制器对应通道,内存槽关系,如下所示。

安装 edac-utils 工具并执行检测命令

mc06 表示 表示内存控制器0; CPU_Src_ID#0 表示源CPU0; Channel#0 表示通道0; DIMM#0 标示内存槽0; Corrected Errors 代表已经纠错的次数

将对应出现问题的内存条重插解决问题,内存条连接不稳,如果没有解决换跟内存条尝试,可能内存条存在安全隐患。