ECC内存对系统稳定性有一定帮助
一、说明
1.ECC内存作用
提升系统稳定性,特别是大内存。
比如有时候的蓝屏死机就是因为内存出错,重启后就没问题了。
服务器这种特别依赖大内存的应用场景,非常依赖ECC。即使1个月死机一次也是不能忍受的。
2.作用机理
通过增加一个额外的 ECC 位,称为奇偶校验位,如果一个位出错,可以纠正。
3.稳定性
带寄存器ECC>纯ECC>DDR5片上ECC
4.ECC内存条件
cpu支持、主板支持(芯片组)、系统支持(主流操作系统都支持)。
二、支持情况
下面的情况只能说大概,并不绝对,具体还要看具体CPU和主板芯片组
因为不同时代,厂家对不同系列的定位不同,还有些定制的cpu,所以不绝对
支持带寄存器的ECC通常不会支持纯ECC,反之也是
1.服务器板U通常为支持带寄存器ECC
2024年这个时间点,推荐amd霄龙,intel高功耗低性能,最高端只有霄龙一半性能,我们公司都把至强淘汰了。
比如至强和霄龙系列及更早的企业级系列都是支持ecc的。
2.AMD锐龙系列(民用平台)通常支持纯ECC
锐龙系列AM4(DDR4)时代,除了少数代的apu不支持,其它的cpu和pro版apu都支持纯ECC,
但是绝大多数主板上纯ECC内存只能以非ECC模式运行(华擎全系列和华硕部分高端系列支持纯ECC)。
AM5(DDR5)使用自带片上ECC,所以支持。
3.intel酷睿系列(民用平台)通常不支持ECC(如果不是ddr5自带,酷睿永远不支持ecc)
从1代到11代酷睿都不支持,如果不是ddr5自带ecc,我觉得到20代都不支持。
12代之后支持,12代之前只有能超频的至强(可以上普通平台那种)才有纯ecc
12代之后,因为DDR5自带片上ECC,所以支持。(如果用DDR4的就不支持)
4.AMD线程撕裂者
通常至少支持纯ECC
三、linux下验证
安装软件
apt-get install dmidecode
运行以下命令
dmidecode -t memory
找到 Error Correction Type
1.普通内存显示如下:
Error Correction Type: None
2.纯ECC和带寄存器的ECC显示如下:
Error Correction Type: Multi-bit ECC
3.片上ECC显示为单bit ecc(DDR5普通内存)
ddr5普通内存都有片上ecc,只能纠错1bit的,但是比没有强。
四、windows下验证
打开Powershell
输入以下(多行带入)
Get-WmiObject Win32_PhysicalMemory |
Select-Object -Property PSComputerName, DeviceLocator, Manufacturer, PartNumber, @{label = "Size/GB" ; Expression = {$_.capacity / 1GB}}, Speed, datawidth, totalwidth, @{label = "ECC" ; Expression = {
if ( $_.totalwidth > $_.datawidth ) {
"$($_.DeviceLocator) is ECC memory type"
}
else {
"$($_.DeviceLocator) is non-ECC Memory Type"
}
}
} | Out-GridView
会弹出结果,比如我这个就是非ECC的普通内存,如果是ECC内存会显示is ECC memory type
(看上面的命令就知道了,这个命令是我看别人的,大概是调用windows的系统函数,用内存的位宽来判断,因为ECC有冗余)