深入浅出计算机组成原理
徐文浩
bothub 创始人
70433 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 62 讲
深入浅出计算机组成原理
15
15
1.0x
00:00/00:00
登录|注册

49 | 数据完整性(上):硬件坏了怎么办?

分析奇偶校验为何是CRC的特殊情况
深入了解校验码的详细算法
ECC内存使用纠错码技术
纠错码能发现并纠正错误
不能纠正错误,只能发现错误
奇偶校验用于发现单个位的错误
ECC内存能自行纠正内存错误
替换自行定制服务器的内存为ECC内存
无法通过软件解决硬件错误
出现单比特翻转硬件错误
自行定制服务器硬件,未使用ECC内存
处理大量数据和报表业务的Hadoop集群
2012年遇到硬件不可靠性引发的Bug
课后思考
推荐阅读
纠错码
奇偶校验
解决方案
问题描述
硬件不可靠性引发的Bug

该思维导图由 AI 生成,仅供参考

2012 年的时候,我第一次在工作中,遇到一个因为硬件的不可靠性引发的 Bug。正是因为这个 Bug,让我开始逐步花很多的时间,去复习回顾整个计算机系统里面的底层知识。
当时,我正在 MediaV 带领一个 20 多人的团队,负责公司的广告数据和机器学习算法。其中有一部分工作,就是用 Hadoop 集群处理所有的数据和报表业务。当时我们的业务增长很快,所以会频繁地往 Hadoop 集群里面添置机器。2012 年的时候,国内的云计算平台还不太成熟,所以我们都是自己采购硬件,放在托管的数据中心里面。
那个时候,我们的 Hadoop 集群服务器,在从 100 台服务器往 1000 台服务器走。我们觉得,像 Dell 这样品牌厂商的服务器太贵了,而且能够提供的硬件配置和我们的期望也有差异。于是,运维的同学开始和 OEM 厂商合作,自己定制服务器,批量采购硬盘、内存。
那个时候,大家都听过 Google 早期发展时,为了降低成本买了很多二手的硬件来降低成本,通过分布式的方式来保障系统的可靠性的办法。虽然我们还没有抠门到去买二手硬件,不过当时,我们选择购买了普通的机械硬盘,而不是企业级的、用在数据中心的机械硬盘;采购了普通的内存条,而不是带 ECC 纠错的服务器内存条,想着能省一点儿是一点儿。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

硬件不可靠性引发的Bug可能带来严重后果,如数据处理失败和结果错误。一篇文章介绍了团队在处理数据和机器学习算法时遇到的自定义硬件故障问题,发现是内存单比特翻转错误导致的。解决方案是采用ECC内存来纠正硬件故障带来的影响。此外,文章还介绍了奇偶校验和校验位的原理,以及纠错码和纠删码的概念,为读者提供了对硬件故障处理和数据完整性保障的深入了解。通过这篇文章,读者能了解硬件不可靠性引发的Bug的严重性,以及如何通过技术手段来解决这些问题。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入浅出计算机组成原理》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(24)

  • 最新
  • 精选
  • 有铭
    从老师的描述看单比特翻转问题的概率不低啊,但是大部分PC机都没有用ECC,为什么PC机很少听说有出现这个问题带来的bug?

    作者回复: 有铭同学, 你好,这有两种情况: 1. 第一种是PC实际的负载比服务器低很多,大部分时间你的PC是很空闲的,CPU占用率和内存使用率都不高,也没有什么东西在计算。而服务器常常是24小时高负载在运转的。服务器可能一天进行的计算量比你PC一年还多。数据中心里又有可能同时有1000台计算机,意味着服务器一天遇到的问题可能PC要一辈子才遇到一次。 2. 第二是很多时候发生了你没有意识到,比如程序忽然Crash了,机器蓝屏重启了,甚至有程序数据错了,你并会关心到哪个是单比特翻转引起的。

    2019-08-21
    4
    49
  • Frank
    老师,发生单比特翻转,只是内存质量与外部射线的原因吗?那买内存的时候,能不能检测到这样的问题的内存。 ECC 目前只能在物理内存里实现吗,

    作者回复: we同学, 你好,单比特翻转不一定是内存质量问题,是我们物理设备本身必然会有精度、工艺以及外部其他干扰信号会带来的问题。ECC也可以在软件层面实现,只是从设计大型系统的角度来讲,我们把这个直接隔离到硬件层面对软件工程师来说是投资回报比最高的。

    2019-08-21
    21
  • 大王叫我来巡山
    曾经一个批次的服务器上线后都就频繁出现这个问题,最终猜测是内存的问题,然后统一换了内存以后没有出现过。

    作者回复: 👍

    2019-12-19
    17
  • xindoo
    之前好像看到过google大神jeff dean也处理过单bit翻转的故障

    作者回复: xindoo同学, 你好,数据量和负载上来,没有ECC的话,单比特翻转其实是一个大概率发生的故障。

    2019-08-21
    2
    12
  • humor
    为什么只会发生单比特翻转不会发生多个比特位的翻转呢

    作者回复: humor同学你好 也会发生,但是概率要小很多。比如单笔特翻转发生的概率是0.01%,那么两个比特都翻转概率就是0.000001%。 要解决这个问题成本会进一步大幅度上升,就没有必要在硬件层面这么干了。

    2019-08-21
    11
  • 阿卡牛
    最近在学网络分层方面的知识,看到检错码和纠错码的方法,没想到在这里也用上了

    作者回复: 是的,计算机科学的底层很多知识是相通的

    2019-08-22
    6
  • -_-|||
    "定制的硬件没有使用 ECC 内存,在大量的数据中,内存中出现了单比特翻转(Single-Bit Flip)这个传说中的硬件错误",出现这个问题硬件厂商负责吗?还是后果都自负。

    作者回复: -_-_aaa同学, 你好,当然是后果自负。

    2020-01-20
    3
    2
  • 明翼
    这个bug牛逼了
    2019-08-25
    1
    27
  • 88591
    计算机领域有太多的未知的未知知识。
    2019-12-13
    6
  • 活的潇洒
    不管多慢、都要坚持打卡、坚持写博文 day49天 笔记:https://www.cnblogs.com/luoahong/p/11498124.html
    2019-09-15
    4
收起评论
显示
设置
留言
24
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部