AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 5672
Accepted
markdrayton
markdrayton
Asked: 2009-05-08 00:20:57 +0800 CST2009-05-08 00:20:57 +0800 CST 2009-05-08 00:20:57 +0800 CST

ECC chipkill 错误:哪个 DIMM?

  • 772

我们经常让服务器中的 DIMM 出现故障,并在 syslog 中出现以下错误:

5 月 7 日 09:15:31 nolcgi303 内核:EDAC k8 MC0:一般总线错误:参与处理器(本地节点响应)、超时(无超时)内存事务类型(通用读取)、内存或 i/o(内存访问) , 缓存级别(通用)
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 硬件。

hardware linux memory ecc
  • 2 2 个回答
  • 31609 Views

2 个回答

  • Voted
  1. Philip Durbin
    2009-05-16T12:21:52+08:002009-05-16T12:21:52+08:00

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

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

    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 .txt 在我的系统 (RHEL5) 上。CE 代表“可纠正错误”,如文档所示,“CE 提供了 DIMM 开始出现故障的早期迹象”。

    回到上面我在服务器控制台上看到的 EDAC 错误,MC1(内存控制器 1)表示 CPU1,行 1 在 Linux EDAC 文档中称为 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。)

    当然,我的服务器上实际上有两个称为 DIMMA0 的 DIMM 插槽(每个 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 文档

    • 17
  2. Best Answer
    Josh
    2009-06-02T12:51:47+08:002009-06-02T12:51:47+08:00

    除了使用 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
    

    失败模块的状态将改变。

    • 4

相关问题

  • 你最喜欢的 Linux 发行版是什么?[关闭]

  • 如何物理清理脏桌面和服务器?

  • 更改 PHP 的默认配置设置?

  • 保护新的 Ubuntu 服务器 [关闭]

  • (软)Ubuntu 7.10 上的 RAID 6,我应该迁移到 8.10 吗?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve