普通不用 ECC 内存的电脑出现位翻转的概率有多大?

72 天前
 Jinnrry

我记得很久很久以前,V 站有一次讨论要不要上 ECC 的帖子,当时有大佬给出了一段代码,大致是声明一个很大很大的数组,然后全部赋值成 1 ,然后再反复遍历检查,有可能出现值为 0 的结果。但是我现在无论如何都搜不到那篇帖子了。有没有大佬再给写个复现代码?

我拿 Go 写的

package main

import "fmt"

func main() {
	var arg [10000000000]bool

	for {
		for i := 0; i < 10000000000; i++ {
			arg[i] = true
		}
		for i := 0; i < 10000000000; i++ {
			if !arg[i] {
				fmt.Println("位翻转了!")
				return
			}
		}
		fmt.Println("!!")
	}

}

我在 mac 上运行了很久,都没发生翻转,不知道是概率太低还是 golang 的 bool 数据结构有兼容处理

3896 次点击
所在节点    硬件
45 条回复
xupefei
72 天前
你得把电脑搬到核反应堆里面才能看到这个现象。
xuelu520
72 天前
概率比你中 500W 概率还要低
R18
72 天前
Jim N. Gray and Catharine van Ingen: "Empirical Measurements of Disk Failure
Rates and Error Rates," Microsoft Research, MSR-TR-2005-166, December 2005
R18
72 天前
现代计算机上,你完全可以忽略。除非你用了不合格的内存,或者处于辐射过大。
DonaldErvinKnuth
72 天前
正好做这个。出现的概率很低。不同的产品级别,要求不一样,比如汽车上的,企业级的,消费类的,消费类又有普通消费和游戏等。要求高的出厂会测试的更严格,用的原料更好,要求低的出厂要求会低,或者会有要求高过滤掉的再来测试,合格后出厂,类似于 i9 i7 i5 一样,同样的芯片,好的用 i9 ,不好的锁核下放。

但是出现这种比特翻转的概率很低,即使是普通消费类,出厂测试都是在高温几十或者上百度,低温零下几十度,反复测试几个小时甚至几十个小时,然后才会在一批货中出现几个。
totoro625
72 天前

来源:/t/975376 https://www.bilibili.com/video/BV1AW4y1y796

个人体验认为,品牌全新内存比不知来源的二手任何牌子的 ECC 内存可靠
如果是淘宝买的便宜 ECC ,宁可不上 ECC
真实经历就是淘宝买的十铨内存,Windows 经常蓝屏,换了京东买的英睿达的就好了
Reficul
72 天前
正常的时候大概率不会反转,但是反转了之后可能导致灾难性问题的话还是得上 ECC 。而且在内存快不行的时候,错误率可能会上升。

如果数据不持久化,大不了就是花屏或者程序莫名其妙挂掉,重启之后数据 reset 了就好了。但是对于 ZFS 这类依赖内存的文件系统,可能会把数据搞炸。
processzzp
72 天前
可以看看这篇 NASA 的 PPT ,AMD CPU 总共吃了 17 兆 rad 的辐射,都没有出现损坏; DDR3 内存的耐辐射能力稍微低一点,但也吃了 1.1k rad 的辐射。现代工艺制程的芯片,耐辐射能力比老芯片强了好多倍
https://nepp.nasa.gov/workshops/etw2013/talks/Wed_June12_2013/1140_LaBel_ AMD Processor Radiation Test Results.pdf
v2tudnew
72 天前
非关键数据损坏问题也不大,但不知道系统是否对关键程序、数据做校验。
tool2dx
72 天前
@totoro625 我的经历是杂牌内存,连默认频率都不能长期稳定跑。去主板 Bios 把内存频率下调一档,马上就稳定很多。
yinmin
72 天前
op 应该想了解 Rowhammer 攻击吧,你的代码是不会发生翻转的,要反复对某个特定内存单元快速读/写,导致隔壁单元的内存翻转。
cheng6563
72 天前
dell 普通台式电脑,挂了 MySQL 当开发机使用了约 2 年,然后之后基本每个月文件系统都要炸一次,你看着办。
liu731
72 天前
机房在福岛吗?真没必要担心这个问题,其他原因造成的宕机可能性更高。
kaedeair
72 天前
概率比较低,需要大量频繁数据写入的场景下才比较容易观察到
GeruzoniAnsasu
72 天前
看这个

https://zhuanlan.zhihu.com/p/37235131
https://www.infocomm-journal.com/cjnis/article/2018/2096-109x/2096-109x-4-1-00069.shtml

针对性构造的 bit 翻转攻击是可能要结合电路结构来设计 payload 的
SkywalkerJi
72 天前
试试液氮超频有可能会出现。
shadowyue
72 天前
测久点,普通环境下,花的电费能让供电局专门来关照的时候,是不是就能测出来了?
Jinnrry
72 天前
@liu731
@R18
@yinmin 单纯无聊,想复现一下位翻转看看
liaohongxing
72 天前
直接上 DDR5 ,由于 DDR5 频率。容易出出,默认都自带 odecc , 比没带 ecc 的强一丢丢
yjsdaniel
72 天前
你不会是接了俄罗斯的绕月卫星改进项目外包订单了吧。。。。他们宣称的就是出现了此问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056179

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX