<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>硬件 on Zero Day Notes</title>
        <link>https://blog.5772447.xyz/tags/%E7%A1%AC%E4%BB%B6/</link>
        <description>Recent content in 硬件 on Zero Day Notes</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh</language>
        <lastBuildDate>Wed, 12 Jul 2023 11:55:00 +0000</lastBuildDate><atom:link href="https://blog.5772447.xyz/tags/%E7%A1%AC%E4%BB%B6/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>记一次服务器内存硬件故障导致的不定时宕机</title>
            <link>https://blog.5772447.xyz/posts/%E4%B8%80%E6%AC%A1%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%86%85%E5%AD%98%E7%A1%AC%E4%BB%B6%E6%95%85%E9%9A%9C%E5%AF%BC%E8%87%B4%E4%B8%8D%E5%AE%9A%E6%97%B6%E5%AE%95%E6%9C%BA%E7%9A%84%E6%8E%92%E6%9F%A5%E5%AE%9E%E5%BD%95/</link>
            <pubDate>Wed, 12 Jul 2023 11:55:00 +0000</pubDate>
            <guid>https://blog.5772447.xyz/posts/%E4%B8%80%E6%AC%A1%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%86%85%E5%AD%98%E7%A1%AC%E4%BB%B6%E6%95%85%E9%9A%9C%E5%AF%BC%E8%87%B4%E4%B8%8D%E5%AE%9A%E6%97%B6%E5%AE%95%E6%9C%BA%E7%9A%84%E6%8E%92%E6%9F%A5%E5%AE%9E%E5%BD%95/</guid>
            <description>&lt;h2 id=&#34;问题背景&#34;&gt;&lt;a href=&#34;#%e9%97%ae%e9%a2%98%e8%83%8c%e6%99%af&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;问题背景&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;公司一台运行 MySQL 8.0 的物理服务器（Dell PowerEdge R740xd，128GB DDR4 ECC 内存），作为生产环境的主库。该机器上线约 18 个月，之前从未出现过硬件问题。&lt;/p&gt;&#xA;&lt;h2 id=&#34;故障现象&#34;&gt;&lt;a href=&#34;#%e6%95%85%e9%9a%9c%e7%8e%b0%e8%b1%a1&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;故障现象&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;7 月初开始，这台 MySQL 服务器出现不定时宕机——平均每 2-3 天一次，时间毫无规律：一次是凌晨 3:00，一次是下午 2:30，一次是上午 10:15。宕机后服务器完全无响应，Ping 不通，只能通过 iDRAC 远程控制台强制重启。&lt;/p&gt;&#xA;&lt;p&gt;每次宕机后检查系统日志：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ journalctl -b -1 --no-pager | tail -50&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;-- Reboot --&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;宕机前的日志中没有任何异常记录&lt;/strong&gt;——没有 OOM Killer，没有 kernel panic 堆栈（默认不输出到串口），没有硬件错误的 edac 报告。系统像是被直接拔了电源一样，没有任何临终遗言。&lt;/p&gt;&#xA;&lt;h2 id=&#34;排查过程&#34;&gt;&lt;a href=&#34;#%e6%8e%92%e6%9f%a5%e8%bf%87%e7%a8%8b&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;排查过程&#xD;&#xA;&lt;/h2&gt;&lt;h3 id=&#34;第一轮怀疑温度和电源&#34;&gt;&lt;a href=&#34;#%e7%ac%ac%e4%b8%80%e8%bd%ae%e6%80%80%e7%96%91%e6%b8%a9%e5%ba%a6%e5%92%8c%e7%94%b5%e6%ba%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;第一轮：怀疑温度和电源&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;通过 iDRAC 查看系统事件日志（SEL）：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;SEL Record:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Date/Time: 2023-07-10 02:58:14&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Sensor: CPU1 Temp&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Type: Temperature&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;  Description: Upper Non-Critical going high (85°C)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;CPU 温度确实偏高（85°C），但还在正常运行范围内（Tcase max 约 95°C）。清理了服务器内部灰尘并更换了散热硅脂后，CPU 温度降到 65°C——但宕机仍然发生。&lt;/p&gt;&#xA;&lt;h3 id=&#34;第二轮怀疑内核崩溃kdump-无输出&#34;&gt;&lt;a href=&#34;#%e7%ac%ac%e4%ba%8c%e8%bd%ae%e6%80%80%e7%96%91%e5%86%85%e6%a0%b8%e5%b4%a9%e6%ba%83kdump-%e6%97%a0%e8%be%93%e5%87%ba&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;第二轮：怀疑内核崩溃（kdump 无输出）&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;配置 kdump 来捕捉内核崩溃时的内存转储：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;yum install kexec-tools&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;systemctl start kdump&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;下一次宕机后检查 &lt;code&gt;/var/crash/&lt;/code&gt;——&lt;strong&gt;kdump 没有生成任何转储文件&lt;/strong&gt;。这说明崩溃的类型非常底层，连内核的 crashkernel 都无法正常加载。&lt;/p&gt;&#xA;&lt;h3 id=&#34;第三轮启用-mce-详细日志&#34;&gt;&lt;a href=&#34;#%e7%ac%ac%e4%b8%89%e8%bd%ae%e5%90%af%e7%94%a8-mce-%e8%af%a6%e7%bb%86%e6%97%a5%e5%bf%97&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;第三轮：启用 MCE 详细日志&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;怀疑是硬件层面的错误触发，在 &lt;code&gt;/etc/default/grub&lt;/code&gt; 中添加内核参数：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;GRUB_CMDLINE_LINUX=&amp;#34;... mce=3 mcelog=1 console=ttyS0,115200&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;通过 iDRAC 的串口重定向功能捕获下一次宕机时的输出。一周后再次宕机，iDRAC 串口日志中终于抓到了关键信息：&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Hardware Error]: CPU:0 (7-86-6) MC0_STATUS[-|CE|MiscV|AddrV|-|-|CECC]: 0x9c20400001080136&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Hardware Error]: Error Addr: 0x00000006f3c82540&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Hardware Error]: MC0 Error: ECC error at CPU:0, channel:1, DIMM: A2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;[Hardware Error]: cache level: L2, tx: GEN, mem-tx: RD&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Kernel panic - not syncing: Fatal machine check on current CPU&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Machine Check Exception (MCE)&lt;/strong&gt;——CPU 检测到了无法纠正的 ECC 内存错误（Uncorrectable ECC Error），触发了内核 Panic。&lt;/p&gt;&#xA;&lt;p&gt;关键信息：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;错误位置：&lt;code&gt;CPU:0, Channel:1, DIMM: A2&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;错误类型：ECC 不可纠正错误&lt;/li&gt;&#xA;&lt;li&gt;错误地址：&lt;code&gt;0x00000006f3c82540&lt;/code&gt;（刚好落在 MySQL 的 buffer pool 内存区域）&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;第四轮确认内存故障模式&#34;&gt;&lt;a href=&#34;#%e7%ac%ac%e5%9b%9b%e8%bd%ae%e7%a1%ae%e8%ae%a4%e5%86%85%e5%ad%98%e6%95%85%e9%9a%9c%e6%a8%a1%e5%bc%8f&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;第四轮：确认内存故障模式&#xD;&#xA;&lt;/h3&gt;&lt;p&gt;虽然 ECC 内存能纠正单比特错误，但当同一个字节出现超过 1 个比特错误时就超过了 ECC 的纠错能力，触发不可纠正错误。而这种偶发性多比特错误通常意味着内存条即将彻底损坏。&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;div style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&#xA;&lt;table style=&#34;border-spacing:0;padding:0;margin:0;border:0;&#34;&gt;&lt;tr&gt;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;1&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;2&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;3&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;4&#xA;&lt;/span&gt;&lt;span style=&#34;white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f&#34;&gt;5&#xA;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&#xA;&lt;td style=&#34;vertical-align:top;padding:0;margin:0;border:0;;width:100%&#34;&gt;&#xA;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;# 之前的edac日志其实有单比特可纠正错误的记录，只是没触发MCE&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;$ grep -i &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;corrected error&amp;#34;&lt;/span&gt; /var/log/messages | grep &lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;DIMM A2&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Jul &lt;span style=&#34;color:#ae81ff&#34;&gt;03&lt;/span&gt; 05:12:14 server kernel: EDAC MC0: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; CE memory read error on CPU:0 channel:1 slot:A2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Jul &lt;span style=&#34;color:#ae81ff&#34;&gt;03&lt;/span&gt; 19:44:32 server kernel: EDAC MC0: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; CE memory read error on CPU:0 channel:1 slot:A2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;Jul &lt;span style=&#34;color:#ae81ff&#34;&gt;05&lt;/span&gt; 11:37:05 server kernel: EDAC MC0: &lt;span style=&#34;color:#ae81ff&#34;&gt;1&lt;/span&gt; CE memory read error on CPU:0 channel:1 slot:A2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&#xA;&lt;/div&gt;&#xA;&lt;/div&gt;&lt;p&gt;DIMM A2 早在 7 月 3 日就开始出现可纠正错误（CE）——只是没人关注 edac 日志。CE 累积到无法纠正时就变成了 MCE 导致宕机。&lt;/p&gt;&#xA;&lt;h2 id=&#34;解决方案&#34;&gt;&lt;a href=&#34;#%e8%a7%a3%e5%86%b3%e6%96%b9%e6%a1%88&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;解决方案&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;停机更换内存&lt;/strong&gt;：联系 Dell 售后，确认 DIMM A2 故障，申请 RMA 更换&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;更换后验证&lt;/strong&gt;：通过 memtest86+ 对新内存条做全量检测（pass &amp;gt; 3 次）&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;重启应用&lt;/strong&gt;：确认 MySQL 恢复正常，buffer pool 完整性校验通过&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;更换内存条后，服务器恢复稳定运行，至今未再宕机。&lt;/p&gt;&#xA;&lt;h2 id=&#34;根因分析&#34;&gt;&lt;a href=&#34;#%e6%a0%b9%e5%9b%a0%e5%88%86%e6%9e%90&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;根因分析&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;直接原因：DIMM A2 内存条硬件老化导致偶发性不可纠正的 ECC 错误，触发 MCE，内核 Panic 使系统直接宕机。kdump 无法捕获 MCE 级别的 Panic 因为内核已经在极端底层崩溃。&lt;/p&gt;&#xA;&lt;p&gt;深层原因：可纠正错误（CE）的 edac 日志没有被纳入监控告警体系，内存条在&amp;quot;带病工作&amp;quot;了一周后才演变为不可纠正错误导致宕机。&lt;/p&gt;&#xA;&lt;h2 id=&#34;预防措施&#34;&gt;&lt;a href=&#34;#%e9%a2%84%e9%98%b2%e6%8e%aa%e6%96%bd&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;预防措施&#xD;&#xA;&lt;/h2&gt;&lt;ol&gt;&#xA;&lt;li&gt;&lt;strong&gt;EDAC 监控告警&lt;/strong&gt;：通过 Zabbix 监控 &lt;code&gt;/sys/devices/system/edac/mc/mc*/ce_count&lt;/code&gt;，单条 DIMM 的 CE 数量 &amp;gt;10 即告警&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;iDRAC 告警集成&lt;/strong&gt;：将 Dell iDRAC 的 SNMP Trap 接入监控系统，硬件可纠正错误立即触发&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;定期硬件巡检&lt;/strong&gt;：每季度对所有服务器的 SEL 日志和 ECC 统计做一次全面巡检&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;建立硬件故障响应流程&lt;/strong&gt;：CE 告警 → 24 小时内确认 → 48 小时内安排更换窗口&lt;/li&gt;&#xA;&lt;li&gt;&lt;strong&gt;关键服务冗余&lt;/strong&gt;：MySQL 主库升级为主从架构，让单机故障不至于导致完全不可用&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;h2 id=&#34;总结&#34;&gt;&lt;a href=&#34;#%e6%80%bb%e7%bb%93&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;总结&#xD;&#xA;&lt;/h2&gt;&lt;p&gt;硬件故障不是&amp;quot;会不会发生&amp;quot;的问题，而是&amp;quot;什么时候发生&amp;quot;的问题。ECC 内存的可纠正错误（CE）是硬件健康的&amp;quot;矿工金丝雀&amp;quot;——当它开始频繁出现时，意味着那条内存条离彻底损坏不远了。这次故障的教训不是 ECC 不够强，而是 CE 的 edac 日志沉默了一整周而没有人关注。在运维中，比监控&amp;quot;已经宕机&amp;quot;更重要的是监控&amp;quot;即将宕机&amp;quot;的信号。&lt;/p&gt;&#xA;</description>
        </item></channel>
</rss>
