ECC Chipkill错误:哪个DIMM?


8

我们经常使服务器中的DIMM损坏,并在syslog中出现以下错误:

5月7日09:15:31 nolcgi303内核:EDAC k8 MC0:通用总线错误:参与处理器(本地节点响应),超时(无超时),内存事务类型(通用读取),mem或i / o(mem访问) ,缓存级别(通用)
5月7日09:15:31 nolcgi303内核:MC0:CE页面0xa0,偏移量0x40,纹理8,校正子0xb50d,第2行,通道0,标签“”:k8_edac
5月7日09:15:31 nolcgi303内核:MC0:CE-无可用信息:k8_edac错误溢出设置
5月7日09:15:31 nolcgi303内核:EDAC k8 MC0:扩展错误代码:ECC chipkill x4错误

我们可以使用HP SmartStart CD来确定哪个DIMM出现错误,但这需要使服务器停产。在服务器启动时,有什么巧妙的方法可以解决哪个DIMM出现故障吗?我们所有的服务器都是运行RHEL 5的HP硬件。


memtest86 +,但我想您不能在RHEL运行时运行它
Alex Bolotov

您是否在包装盒上运行HP SIM主页(或者实际上是完整的SIM卡)?如果是这样,它将提供更多的信息。否则,我需要从更详细的错误中了解有关内存偏移的更多信息。
斩波器

我们没有在盒子上运行任何HP SIM东西,因为我们通常发现它比它值得的麻烦更多。如果我们无法确定哪个DIMM处于在线状态时已失效,那就不是问题了-我只是在寻找节省时间的方法:〜)
markdrayton 2009年

Answers:


4

除了使用EDAC代码外,您还可以仅在计算机联机时使用CLI的HP实用程序来确定此问题。cli版本比基于Web的版本轻得多,并且不需要您打开端口或守护程序不断运行。

hpasmcli将为您提供故障模块的墨盒和模块号。比分析EDAC快一点。

例:

hpasmcli -s "show dimm"

DIMM Configuration
------------------
Cartridge #: 0
Module #: 1
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 2
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 3
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

Cartridge #: 0
Module #: 4
Present: Yes
Form Factor: 9h
Memory Type: 13h
Size: 1024 MB
Speed: 667 MHz
Status: Ok

故障模块的状态将更改。


啊,太棒了!也需要相当少量的软件包:OpemIPMI,OpenIPMI-libs和hp-health。至少这是在BL465上起作用的-我无法使ipmi守护程序在BL25上运行:内核:ipmi_si:无法找到任何系统接口-想法?互联网上没有很多:(
markdrayton

我也没有遇到这个问题。仅在DL380 / 5和DL580 / 5服务器上使用了实用程序。
乔什(Josh)2009年

17

MC0,第2行和通道0很重要。尝试更换CPU0上的DIMMA1。

举例来说,我必须在Linux服务器中找出一个坏的DIMM,该服务器具有16个完全填充的DIMM插槽和两个CPU。这些是我在控制台上看到的错误:

EDAC k8 MC1: general bus error: participating processor(local node origin), time-out(no timeout) memory transaction type(generic read), mem or i/o(mem access), cache level(generic)
EDAC MC1: CE page 0x103ca78, offset 0xf88, grain 8, syndrome 0x9f65, row 1, channel 0, label "": k8_edac
EDAC MC1: CE - no information available: k8_edac Error Overflow set
EDAC k8 MC1: extended error code: ECC chipkill x4 error

我服务器中的DIMM错误是CPU1上的DIMMA0。

EDAC代表错误检测和纠正,并在http://www.kernel.org/doc/Documentation/edac.txt和/usr/share/doc/kernel-doc-2.6*/Documentation/drivers/edac/edac中进行了记录我的系统(RHEL5)上的.txt。CE代表“可纠正的错误”,并且如文档所示,“ CE提供DIMM即将失效的早期迹象。”

回到上面在服务器控制台上看到的EDAC错误,MC1(内存控制器1)表示CPU1,在Linux EDAC文档中将行1称为csrow1(芯片选择行1),通道0表示内存通道0我检查了http://www.kernel.org/doc/Documentation/edac.txt上的图表,发现csrow1和Channel 0对应于DIMM_A0(我系统上的DIMMA0):

            Channel 0       Channel 1
    ===================================
    csrow0  | DIMM_A0       | DIMM_B0 |
    csrow1  | DIMM_A0       | DIMM_B0 |
    ===================================

    ===================================
    csrow2  | DIMM_A1       | DIMM_B1 |
    csrow3  | DIMM_A1       | DIMM_B1 |
    ===================================

(作为另一个示例,如果我在MC0,csrow4和通道1上看到错误,则应该更换CPU0上的DIMMB2。)

当然,我的服务器上实际上有两个DIMM插槽,称为DIMMA0(每个CPU一个),但是MC1错误再次对应于CPU1,它在dmidecode输出中的“ Bank Locator”下列出:

[root@rce-8 ~]# dmidecode -t memory | grep DIMMA0 -B9 -A8
Handle 0x002E, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x002B
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMMA0
        Bank Locator: CPU0
        Type: DDR2
        Type Detail: Synchronous
        Speed: 533 MHz (1.9 ns)
        Manufacturer:  
        Serial Number:  
        Asset Tag:  
        Part Number:  
--
Handle 0x003E, DMI type 17, 27 bytes.
Memory Device
        Array Handle: 0x002B
        Error Information Handle: Not Provided
        Total Width: 72 bits
        Data Width: 64 bits
        Size: 4096 MB
        Form Factor: DIMM
        Set: None
        Locator: DIMMA0
        Bank Locator: CPU1
        Type: DDR2
        Type Detail: Synchronous
        Speed: 533 MHz (1.9 ns)
        Manufacturer:  
        Serial Number:  
        Asset Tag:  
        Part Number:

(在我的工作站上,dmidecode实际上显示了我的DIMM的部件号和序列号,这非常有用。)

除了查看控制台和日志中的错误外,您还可以通过检查/ sys / devices / system / edac来查看每个MC / CPU,行/ csrow和通道的错误。在我的情况下,错误仅发生在MC1,csrow1,通道0:

[root@rce-8 ~]# grep "[0-9]" /sys/devices/system/edac/mc/mc*/csrow*/ch*_ce_count
/sys/devices/system/edac/mc/mc0/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc0/csrow7/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow0/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow1/ch0_ce_count:6941652
/sys/devices/system/edac/mc/mc1/csrow1/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow2/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow3/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow4/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow5/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow6/ch1_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch0_ce_count:0
/sys/devices/system/edac/mc/mc1/csrow7/ch1_ce_count:0

我希望该示例对任何试图基于EDAC错误识别出错误的DIMM的人有所帮助。有关更多信息,我强烈建议阅读http://www.kernel.org/doc/Documentation/edac.txt上的所有Linux EDAC文档


1
很棒的答案!到目前为止,这是最好的答案,可以完美地引导您解决问题并找出坏的DIMM。
slm 2015年

如果该消息是,该怎么办MC0: UE row 0, channel-a= 2 channel-b= 3
米塔尔(Mitar)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.