use*_*ser 25 linux-kernel ram ecc
我打算用一些 ECC RAM 来替换我目前安装在 Asus M5A97 Pro 主板(AMD 970 芯片组,FX-6100 CPU)上的非 ECC RAM。
安装内存后,如何判断内存的ECC功能是否正常?
我想过dmidecode --type memory
每个 RAM 棒当前打印的是哪些:
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Run Code Online (Sandbox Code Playgroud)
(首先,我希望每字节 1 位 ECC 数据宽度保持为 64 位,但总宽度为 72 位。)
这可以用于确定 ECC 是否有效吗?或者 dmidecode 太低了?我还能使用什么(除了等待并查看日志中是否出现 ECC 错误,这表明它正在工作但不是它不工作)?
更新:我后来想到了 edac-utils。安装它们,我得到Not enabling Memory Error Detection and Correction since EDAC_DRIVER is not set
. 这给了我edac-util
和edac-ctl
可执行文件。其中之一可以用于此目的吗?
use*_*ser 17
似乎没有万无一失的方法可以告诉,但是各种方法可以为您提供某种答案。显然,您几乎必须尝试不同的方法,直到找到一个告诉您 ECC 正在工作的方法。
在我的情况下,无法诱使 memtest86+ 4.20意识到它正在处理 ECC RAM;即使我将其配置为 ECC On,它仍会ECC: Disabled
在 IMC 线路上报告。我还没有尝试过新版本。然而(可能在安装 edac-utils 之后,不幸的是我基本上同时做了这两个),Linux 在引导日志中报告(穿插着一些其他条目):
[ 4.867198] EDAC MC: Ver: 2.1.0
...
[ 4.874374] MCE: In-kernel MCE decoding enabled.
[ 4.875414] AMD64 EDAC driver v3.4.0
[ 4.875438] EDAC amd64: DRAM ECC enabled.
...
[ 4.875542] EDAC amd64: CS0: Unbuffered DDR3 RAM
[ 4.875545] EDAC amd64: CS1: Unbuffered DDR3 RAM
[ 4.875546] EDAC amd64: CS2: Unbuffered DDR3 RAM
[ 4.875548] EDAC amd64: CS3: Unbuffered DDR3 RAM
Run Code Online (Sandbox Code Playgroud)
这是一个很好的指示。手动执行/etc/init.d/edac restart
不会创建类似的日志条目,并且查看几次重新启动前的旧日志,我看到:
[ 13.886688] EDAC MC: Ver: 2.1.0
[ 13.890389] MCE: In-kernel MCE decoding enabled.
[ 13.891082] AMD64 EDAC driver v3.4.0
[ 13.891107] EDAC amd64: DRAM ECC disabled.
[ 13.891116] EDAC amd64: ECC disabled in the BIOS or no ECC capability, module will not load.
[ 13.891117] Either enable ECC checking or force module loading by setting 'ecc_enable_override'.
[ 13.891118] (Note that use of the override may cause unknown side effects.)
Run Code Online (Sandbox Code Playgroud)
dmidecode --type memory
还给出了两个非常强烈的指示:物理内存阵列的“纠错类型”属性(但是由于某种原因,它在非 ECC RAM 上显示相同,因此这可能与主板的支持而不是内存的功能有关),
Handle 0x0026, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: Multi-bit ECC
Run Code Online (Sandbox Code Playgroud)
以及每个存储设备的总宽度和数据宽度,分别(附加位是用于 ECC 的位):
Handle 0x0028, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0026
Error Information Handle: Not Provided
Total Width: 72 bits
Data Width: 64 bits
Run Code Online (Sandbox Code Playgroud)
有一种非常简单有效的方法可以做到这一点,前提是您可以通过控制台访问服务器/PC 并可以重新启动它:memtest86+
这个漂亮的工具将快速显示内存是否启用了 ECC。我也相信它会在进行实际测试时执行 ECC 验证。
这是一个(稍微过时的)屏幕截图:
归档时间: |
|
查看次数: |
41495 次 |
最近记录: |