- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
大多数可用的桌面(廉价)x86 平台现在仍然不支持 ECC 内存 (Error Checking & Correction)。但内存位翻转错误率仍在增长(not the best SO thread,Large scale CERN 2007 study "Data integrity":“其内存模块的位错误率为 10-12 ...观察到的错误率为比预期低 4 个数量级”;2009 年 Google 的 "DRAM Errors in the Wild: A Large-Scale Field Study")。对于当前具有数据密集型负载(8 GB/s 读取)的硬件,这意味着可能每分钟(来自 CERN07 的 10-12 个供应商 BER)或两天一次(10< CERN07 的 sup>-16 BER)。 Google09 表示每 Mbit 最多可以有 25000-75000 位 FIT(每十亿小时的时间故障),这相当于 8GB RAM 每小时 1-5 位错误(“平均可纠正错误率每年每 GB 2000–6000")。
所以,我想知道,是否可以在系统范围内添加某种软件错误检测(检查用户和内核内存)。例如,为 Linux 内核和/或系统编译器创建一个补丁,为每个内存页面添加一些校验和,并尝试通过定期重新计算校验和来检测静默内存损坏(位翻转)?
例如,我们能否查看所有对内存的写入(来自用户和内核空间),以区分预期的内存更改和内存中的位翻转?或者我们可以通过一些帮助程序以某种方式检测所有代码吗?
我了解任何类型的软件内存 ECC 都可能会消耗大量性能并且不会捕获所有错误,但我认为尽早检测至少一些内存位翻转是有用的,然后它们将在以后被重用计算或存储到硬盘驱动器。
我也明白更好的数据保护方法是切换到 ECC 硬件,但大多数 PC 仍然是非 ECC。
最佳答案
问题是,与“软件 ECC 对策”相比,ECC 非常便宜。您可以轻松检测他们是否有 ECC 模块并在没有时提示(或打印警告)。
http://www.cyberciti.biz/faq/ecc-memory-modules/
For example, can we see all writes to memory (both from user and kernel space), to distinguish between intended memory changes from in-memory bit flips? Or can we somehow instrument all codes with some helper?
呃,你永远不会“看到”总线上的位翻转。它们实际上是由粒子撞击 RAM 引起的,稍微翻转一下。直到很久以后,您才能注意到您读出的内容与您写入的内容不同。要仅通过总线检测到这一点,您需要一份 all RAM 的副本(即创建一个影子副本)位于您的真实 RAM 中,因此您可以验证每次读取都返回写入该位置的内容。)
try to detect silent memory corruptions (bit-flips) by regular recomputing of checksums?
Redis 专家对用于测试 RAM 是否存在问题的算法写了一篇很好的文章。 http://antirez.com/news/43但这实际上是在寻找 RAM 错误,而不是随机位翻转。
如果“重新计算校验和”仅在您不写入内存时有效。这可能“足够好”,但您需要弄清楚哪些页面没有被写入。
要捕获 100% 的错误,每次写入之前都必须先计算该内存块的校验和,然后将其与记录的校验和进行比较(以确保该 block 在 RAM 中没有降级)。只有这样才能安全地进行写入然后更新校验和。正如你可以想象的那样,它的性能将是可怕的(至少慢 100 倍)。
I understand that any kind of software memory ECC may cost a lot of performance and will not catch all errors, but I think it can be useful to detect at least some memory bit-flips early, before they will be reused in later computations or stored to hard drive.
嗯,有一种简单的方法可以检测 100% 的错误,但会以 50% 的性能为代价:只需一次在 2 个盒子上运行计算(或者在两个不同时间在一个盒子上运行,可能需要进行 RAM 测试)如果您偏执,则介于两者之间。)如果结果不同,则说明您检测到错误。
另见:
关于memory - 无 ECC 平台的软件内存位翻转检测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23587591/
前言 在进行Maven开发时,往往需要下载大量jar包,而由于网络不稳定等其他因素可能导致jar未下载完毕,然后保留了lastUpdated文件,导致无法更新失效的jar包。 本文分享 bat脚本,自
按字母顺序排序并不是我们花太多时间担心的事情。我们在很小的时候就学习了字母表,现在我们知道它(拉丁文)以 A 开头,然后是 B,然后是 C 等等,一直到 Z。 但是这个订单究竟存储在计算机系统中的什么
我尝试使用可分离为 2 个一维向量的二维矩阵来证明二维傅里叶变换的信号属性的可分离性。地点: f(x,y) = f(x)*f(y) 那么 F(u,v) = F(u)*F(v) 使用以下代码: % Se
我需要为几个小型sqlite数据库编写文档。想描述数据的使用方式,包括表和行说明以及示例数据。 是否可以使用MySQL Workbench?如果没有其他选择,或者我可以使用任何模板? TIA! 最佳答
我正在尝试使用旧版本(例如:1.4.5)安装 memcached,但我不知道该怎么做。 brew install memcached安装最新的。 我也试过 brew install memecache
背景 多年来,我一直使用自己的类似贝叶斯方法,根据大型且不断更新的训练数据集对来自外部来源的新项目进行分类。 每个项目都有三种类型的分类: 30 个类别,其中每个项目必须属于一个类别,且最多属于两个类
嗨,我需要确定 4 个数字是否相等。数字是 size(A,1)、size(B,1)、size(C,1) 和 size(D,1),其中,例如A = [1 2; 3 4], B=[1 2 3, 4 5 6
Wikipedia 中的文章似乎太冗长了。 我将框架理解为一组精心设计的库和工具。 Qt 框架为跨平台 GUI 提供了一组库/工具。 cocoa 框架为 Mac 做了同样的事情。 软件框架的实际定义是
我们的客户最近发现了这个网站: http://mydeco.com/3d-planner/ 它有一个非常非常奇特且组合良好的 3d CAD Web 应用程序,似乎是使用 jQuery 编写的,而不是
我们正在寻找一种独立的(非 cms)日历解决方案来显示在网络上。它可以是开源的或付费服务。 我们主要是在寻找一种在 Web 上显示日历的方法,其中包含事件发生的时间和事件的名称。如果它可以按周、月、年
我想知道与软件相关的“质量保证”和“质量科学”之间的区别。 我在Google上进行了研究,但未找到有关“质量科学”的任何信息。 最佳答案 Based on the link you have prov
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 要求我们推荐或查找工具、库或最喜欢的场外资源的问题对于 Stack Overflow 来说是偏离主题的,
我有一个由 2 个方程和 2 个未知数组成的系统,我想使用 MATLAB 求解,但不知道如何编程。我得到了一些有关 Gamma 分布的信息(平均值为 1.86,90% 的间隔介于 1.61 和 2.1
给定一个矩阵,其中 1 是当前子集 test = 0 0 0 0 0 0 0 0 0 0 0 0
我在组合 Matlab“数据”变量的重复元素时遇到问题。我可以使用 unique 和 sort 轻松组合这些值。 [sorted,idx] = sort(data); [~,ij] = unique(
我在做的问题中有这么一段代码,如下图。定义部分只是为了向您展示数组的大小。下面我粘贴了矢量化版本 - 它慢了 2 倍以上。为什么会这样?我知道如果矢量化需要大的临时变量,我就会发生,但(看起来)这里不
我有一个 3D 矩阵,我想将它的每个 2D 分量存储在另一个 2D 矩阵的行中,该 2D 矩阵有许多行作为 3D 矩阵的第 3 维。 我该怎么做? 最佳答案 与 permute & reshape -
如果计算机能够使用纯 JavaScript(Google V8)、C++(Windows、Mac OS 和 Linux)运行程序/软件而没有任何性能问题,是否有任何好的方法可以通过要求尽可能少尽可能从
我的团队的任务是将用于播放媒体文件的全屏、信息亭式应用程序从 Windows 迁移到嵌入式 ARM Linux(瘦客户端)。我们需要在 sd/1080p 中支持 mpeg-2 播放以及 HTML、SW
我们有数以千计的具有白色或黑色或渐变背景的产品图片。我们正在寻找可以去除图片背景的软件或服务。我们需要一款能够很好地完成这项工作的智能软件。 最佳答案 在 photoshop 中,您可以记录 Acti
我是一名优秀的程序员,十分优秀!