我更新了这篇文章,因为我更换了处理器,但我的问题的核心(不幸的是结果也是如此)是相同的.

我构建了我的第一个FreeNAS盒子,并且想要使用ECC RAM,因为我想存储关键数据.因为我的预算有限,所以我想选择仍然支持ECC RAM的最经济实惠的解决方案.

经过一些研究,我发现,我需要一块主板,内存和支持ECC的CPU.我选择的主板是“Gigabyte X150M-Pro ECC”,它有C232芯片组,DDR4和LGA1151插槽.

我还买了一套由金士顿制造的两个DIMM,型号为“KVR21E15S8K2 / 8”(spec sheet).技嘉公布了经过测试的内存模块列表,我的模块似乎得到了ECC(list of supported modules)的支持.

4NuLY.jpg

由于我的预算有限,我需要一台支持ECC的经济实惠的Skylake CPU.根据Intel,赛扬G3900确实支持ECC,所以我选择了那个.

在构建计算机之后,我想验证我的系统确实在运行ECC内存并进入主板的BIOS.从各种互联网网站,我发现一些主板有一个special section应该告诉ECC是否正常工作,但我的主板似乎没有.我检查了所有菜单,但找不到类似的部分.

在做了一些更多的研究之后,在Unix& Linux stackexchange上找到了post,这并没有解决我的问题.我尝试了最新的memtest86,据我所知,甚至没有显示“ECC”的值.我尝试了旧的4.20版本that Puget systems used,显示“ECC:off”.然而,在阅读了前面提到的帖子之后,我怀疑它是否说实话(也许这就是为什么该功能被删除了?).这两个版本也没有读出DIMM的正确速度和延迟,这增加了我对memtest86的怀疑.

To5e1.jpg

如果ECC正在工作,另一种流行的方法是发出dmidecode -t memory命令并读出总宽度和数据宽度.我的结果分别是128位和64位.输出的一部分显示了有关存储器阵列的详细信息,该存储器阵列具有错误校正类型的键值对:单比特ECC.

我期望总宽度为72位,所以我认为它可能与双通道有关并将内存模块移动到两个相邻的插槽中,这应该阻止双通道,但结果是相同的.这是dmidecode -t内存的full output.

我甚至尝试了Puget系统发布的有趣的C-program,但结果是0,表示没有ECC支持.

现在我开始怀疑英特尔自己网站上的数据是否正确,我的CPU实际上并不支持ECC.内存和主板都专门用“ECC”标记,所以我可以排除这些.

是否有可能BIOS版本需要更新(目前没有)才能启用ECC,或者ECC实际上是否已经正常工作,我只是无法验证它?或者我选择的CPU是错误的,如果我想运行ECC内存而英特尔的网站是错误的/误导性的?

如果我的CPU结果是错误的选择,那么“预算ECC CPU”的下一个最佳选择是什么?

更新:我看到一些new indication,我的系统实际上可能在启用ECC的情况下运行,而dmidecode工具只报告奇怪的数据.在FreeNAS论坛上,用户Dusan正在使用服务器级硬件(SuperMicro MB,Xeon CPU,Kingston DIMM),并具有128位的类似输出.但他写道,如果真的有效,他不确定自己.

更新2:正如yagmoth555在his answer中提到的这个问题,似乎我的主板只支持带有Xeon处理器的ECC,不过我认为这个说明是以前手册中的复制品被复制了.

我想这意味着我需要调查一个Xeon处理器..: – /

更新3:我现在买了一台Xeon E3-1220v5,它当然支持ECC,应该符合手册的要求.我再次运行所有测试以检查ECC功能,结果基本相同:

OTYfp.png

从Puget Systems的评论来看,似乎ecc_check.c程序在Xeon和Core i7处理器上不起作用..: – /

我这次更多地检查了memtest86,我相当肯定它根本不支持DDR4或C232芯片组,因为它不仅报告了错误的速度和时序,还报告了DDR3而不是安装的DDR4.但是,它检测到处理器就好了,但我对两个版本的memtest86仍然得到了相同的最终结果:

HV8Rh.jpg

版本4.20甚至没有正确检测我的处理器..

Ft8QX.jpg

关于我如何测试ECC的任何想法都非常感谢.

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐