内存模块错误影响操作系统性能

内存模块错误影响操作系统性能

有一天,其中一个内存模块开始产生可纠正的内存错误。然后,操作系统开始变慢,Oracle 数据库停止正常工作。另外,我不使用镜像或备用设置。

| Sat 30 Jan 2021 14:34:56 PM | Major | 19001A | iRMC S4 | 'MEM3_DIMM-B1': Memory module failure predicted | Memory | Yes |
| Sat 30 Jan 2021 15:25:44 PM | Major | 190033 | BIOS | 'MEM3_DIMM-B1': Too many correctable memory errors | Memory | No |
| Sat 30 Jan 2021 15:25:45 PM | Critical | 190035 | iRMC S4 | 'MEM3_DIMM-B1': Memory module error | Memory | Yes |
| Sat 30 Jan 2021 09:59:37 PM | Major | 190033 | BIOS | 'MEM3_DIMM-B1': Too many correctable memory errors | Memory | No |
| Sat 30 Jan 2021 09:59:37 PM | Major | 190033 | BIOS | 'MEM3_DIMM-B1': Too many correctable memory errors | Memory | No |

处理器负载从 0.4 增加到 1.2

CPU 空闲时间从 85% 降至 0。

CPU中断时间0.2%变为0.8%。

感觉服务器负载过重。系统日志中有这样的记录:

Jan 30 14:34:55 server1 kernel: mce: [Hardware Error]: Machine check events logged
Jan 30 14:34:55 server1 kernel: EDAC MC2: 213 CE memory scrubbing error on CPU_SrcID#1_Ha#0_Chan#1_DIMM#0 or CPU_SrcID#1_Ha#0_Chan#1_DIMM#1 (channel:1 page:0x3833edc offset:0x0 grain:32 syndrome:0x0 -  OVERFLOW area:DRAM err_code:0008:00c1 socket:1 ha:0 channel_mask:2 rank:255)
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 0
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]: It has been corrected by h/w and requires no further action
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]: event severity: corrected
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]:  Error 0, type: corrected
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]:  fru_text: Card03, ChnB, DIMM0
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]:   section_type: memory error
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]:   node: 2 card: 1 module: 0 
Jan 30 14:35:27 server1 kernel: {1}[Hardware Error]:   error_type: 2, single-bit ECC
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 0
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]: It has been corrected by h/w and requires no further action
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]: event severity: corrected
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]:  Error 0, type: corrected
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]:  fru_text: Card03, ChnB, DIMM0
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]:   section_type: memory error
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]:   node: 2 card: 1 module: 0 
Jan 30 15:26:39 server1 kernel: {2}[Hardware Error]:   error_type: 2, single-bit ECC
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]: Hardware error from APEI Generic Hardware Error Source: 0
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]: It has been corrected by h/w and requires no further action
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]: event severity: corrected
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]:  Error 0, type: corrected
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]:  fru_text: Card03, ChnB, DIMM0
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]:   section_type: memory error
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]:   node: 2 card: 1 module: 0 
Jan 30 21:59:52 server1 kernel: {3}[Hardware Error]:   error_type: 2, single-bit ECC
Jan 30 22:08:37 server1 kernel: perf: interrupt took too long (34740 > 34456), lowering kernel.perf_event_max_sample_rate to 5000
Jan 30 22:11:54 server1 kernel: perf: interrupt took too long (43438 > 43425), lowering kernel.perf_event_max_sample_rate to 4000
Jan 30 22:15:02 server1 kernel: mce: [Hardware Error]: Machine check events logged
Jan 30 22:15:02 server1 kernel: EDAC MC2: 1 CE memory scrubbing error on CPU_SrcID#1_Ha#0_Chan#3_DIMM#0 or CPU_SrcID#1_Ha#0_Chan#3_DIMM#1 (channel:3 page:0x32bb2cd offset:0x0 grain:32 syndrome:0x0 -  area:DRAM err_code:0008:00c3 socket:1 ha:0 channel_mask:8 rank:255)
Jan 30 22:18:05 server1 kernel: perf: interrupt took too long (54573 > 54297), lowering kernel.perf_event_max_sample_rate to 3000
Jan 30 22:24:04 server1 kernel: perf: interrupt took too long (68810 > 68216), lowering kernel.perf_event_max_sample_rate to 2000

我的理解是这样的:内存模块由于某种原因开始产生可纠正的错误。当达到计数器阈值时,服务器“禁用”此内存模块。理论上,这应该是有条件的正常情况。也许我错了。我认为如果我遇到不可纠正的内存错误,服务器将重新启动,但在我的情况下并没有发生这种情况。

从服务器上拆下内存模块,用 memtest 测试了几天,没有发现任何错误。我觉得这很奇怪,这可能表明服务器本身有问题。

问题是:服务器引发的内存模块故障是否会导致操作系统出现问题?我该如何证明或反驳我的理论?

Server: Fujitsu PRIMERGY RX4770 M3

Memory: 32x Samsung 16 GB M393A2K40BB1-CRC 

OS: RHEL 7.9

相关内容