¿Qué es el ram ECC y por qué es mejor?

31

He visto una discusión sobre el uso de ram ECC en los servidores. ¿Por qué es mejor?

Toby Allen
fuente
2
Pregunta respondida en otra pregunta: serverfault.com/questions/5817/…
sh-beta
¿Hay alguna evidencia de que la memoria ECC es necesaria o beneficiosa para usar? Los beneficios y el mecanismo de acción son fáciles de entender, pero nunca he escuchado evidencia que justifique su uso.
Drew Stephens el
¿Y cuáles son las diversas consecuencias posibles de experimentar tales errores de memoria (bit)? Por ejemplo, acabo de apagar un servidor que estuvo en línea durante 5 años sin parar (con ram ECC), y en general todo salió bien, nunca tuve ninguna queja de clientes que estuvieran alojados allí o que alguna vez experimentaran un problema importante. falla ... Es lo mismo con mi experiencia con la computadora de escritorio: un BSOD aquí y allá muy raramente, pero ¿es todo esto? :)
Denis Volovik
@ Denis, creo que si quieres que la gente responda tu pregunta, es posible que debas hacerla como una pregunta separada en lugar de un comentario.
Toby Allen

Respuestas:

28

La RAM ECC puede recuperarse de pequeños errores en bits, utilizando bits de paridad. Dado que los servidores son un recurso compartido donde el tiempo de actividad y la confiabilidad son importantes, la RAM ECC generalmente se usa con una diferencia de precio modesta. La RAM ECC también se usa en estaciones de trabajo CAD / CAM, donde los errores de bits pequeños pueden causar errores de cálculo que se convierten en problemas más significativos cuando un diseño pasa a la fabricación.

Waldo
fuente
55
Un pequeño error en un número en cualquier lugar, incluido el paquete de financiación de pequeñas empresas de alguien, puede ser muy pequeño o muy grande. Todo depende de qué parte.
Zan Lynx
Agregue a eso el hecho de que el error incorrecto en el lugar equivocado podría derribar mucho más de una máquina cuando haya virtualizado para consolidar.
MikeyB
1
Solo estoy esperando que una compañía sin escrúpulos reclame que su fraude contable fue en realidad solo un pequeño error.
Eloff
29

Excelente estudio del mundo real:

Errores de DRAM en la naturaleza: un estudio de campo a gran escala (pdf)

Este documento proporciona el primer estudio a gran escala de los errores de memoria DRAM en el campo. Se basa en los datos recopilados de la flota de servidores de Google durante un período de más de dos años que representan muchos millones de días DIMM. La DRAM en nuestro estudio cubre múltiples proveedores, densidades y tecnologías de DRAM (DDR1, DDR2 y FBDIMM).

El documento aborda las siguientes preguntas: ¿Qué tan comunes son los errores de memoria en la práctica? ¿Cuáles son sus propiedades estadísticas? ¿Cómo se ven afectados por factores externos, como la temperatura y la utilización del sistema? ¿Y cómo varían con factores específicos del chip, como la densidad del chip, la tecnología de memoria y la antigüedad del DIMM?

Encontramos que en muchos aspectos los errores de DRAM en el campo se comportan de manera muy diferente de lo que comúnmente se supone. Por ejemplo, observamos tasas de error DRAM que son órdenes de magnitud más altas que las reportadas anteriormente, con tasas FIT (fallas en el tiempo por billón de horas de dispositivo) de 25,000 a 70,000 por Mbit y más del 8% de DIMM afectados por año. Proporcionamos evidencia sólida de que los errores de memoria están dominados por errores duros, en lugar de errores blandos, en los que se centra la mayoría del trabajo anterior. Encontramos que, de todos los factores que afectan el comportamiento de error de un DIMM en el campo, la temperatura tiene un efecto sorprendentemente pequeño. Finalmente, a diferencia de lo que comúnmente se teme, no observamos ninguna indicación de que las tasas de error por DIMM aumenten con las nuevas generaciones de DIMM.

Es interesante que la mayoría de los errores de memoria fueran duros: los errores de memoria dura son irrecuperables, lo que significa que la memoria tiene que ser reemplazada físicamente como fallida , mientras que los errores de memoria blanda pueden repararse sobrescribiendo la memoria con el valor correcto. Esto me indica que el valor de ECC es bastante limitado.

Hay dos tipos de errores que generalmente pueden ocurrir en un sistema de memoria. El primero se llama un error repetible o difícil. En esta situación, una pieza de hardware está rota y siempre devolverá resultados incorrectos. Un bit puede estar atascado para que siempre devuelva "0", por ejemplo, sin importar lo que esté escrito en él. Los errores duros generalmente indican módulos de memoria sueltos, chips quemados, defectos de la placa base u otros problemas físicos. Son relativamente fáciles de diagnosticar y corregir porque son consistentes y repetibles.

Sin embargo, parece que todos los servidores en el estudio usaron ECC, por lo que no podemos conocer las tasas de error de ECC vs. no ECC.

Este documento estudió la incidencia y las características de los errores de DRAM en una gran flota de servidores de productos básicos. Nuestro estudio se basa en datos recopilados durante más de 2 años y cubre DIMM de múltiples proveedores, generaciones, tecnologías y capacidades. Todos los DIMM estaban equipados con lógica de corrección de errores (ECC) para corregir al menos errores de un solo bit.

Jeff Atwood
fuente
55
+1 buen informe. Si bien no conozco las tasas de error no ECC, calculo que las tasas de error no ECC son aproximadamente las mismas que las tasas de error ECC por GB. Los mismos chips RAM utilizados se utilizan en DIMM ECC y no ECC (los DIMM ECC simplemente usan 9/8 tantos chips: 72 bits de memoria sin procesar para almacenar una palabra de datos de 64 bits y 8/9 la tasa de error es aproximadamente la misma tasa de error), y no veo ninguna razón para que un chip RAM tenga una tasa de error significativamente diferente cuando se coloca en un DIMM ECC frente a cuando se coloca en un DIMM no ECC.
David Cary
9

ECC tiene varias ventajas sobre la paridad. Por un lado, puede detectar y reparar errores de un solo bit y hacerlo sin tener que detener todo el sistema. Los errores de bits múltiples aún devolverán un error de paridad, pero las probabilidades de que esto ocurra son astronómicamente bajas durante la vida útil de una PC a menos que la memoria en sí sea defectuosa. ECC es como un seguro de auto: lo cubre para la mayoría de las cosas que pueden salir mal, pero no puede evitar una acumulación de autos múltiples.

Más detalles aquí: memoria ECC: imprescindible para servidores, no para PC de escritorio

TStamper
fuente
1
No estoy de acuerdo con el artículo. Creo que todos deberían estar usando ECC. No iba a rendirme, pero quería un nuevo Core I7 lo suficiente como para finalmente hacerlo. Sin embargo, estoy seguro de que mis 6 GB de RAM están detectando errores por todas partes.
Zan Lynx
44
@zan y estos errores de los que está "seguro", ¿qué consecuencia tienen?
Jeff Atwood el
No adivines; los errores corregibles deberían eliminar los MCE que se pueden registrar en el sistema operativo (Sistema de registro en Windows, / var / log / mcelog en Linux)
MikeyB
@JeffAtwood: Por lo general, nada, pero ocasionalmente tuve una pantalla azul sin razón aparente. En los sistemas que tengo, que hacer tener ECC voy a ver un par de errores de un solo bit cada mes.
Zan Lynx
@JeffAtwood: Y, como todos, estoy seguro, ocasionalmente he tenido que reinstalar una aplicación (Office. Visual Studio.) Porque aparentemente se ha vuelto loca. ¿Error de aplicación o error de ECC que causa un archivo de disco dañado? ¿Quién sabe si no tienes ECC?
Zan Lynx
5

Para simplificar las cosas, citando de Wikipedia :

La interferencia eléctrica o magnética dentro de un sistema informático puede hacer que un solo bit de DRAM se voltee espontáneamente al estado opuesto. Inicialmente se pensó que esto se debía principalmente a las partículas alfa emitidas por contaminantes en el material de embalaje de chips, pero la investigación [5] ha demostrado que la mayoría de los errores únicos ("suaves") en los chips DRAM se producen como resultado de la radiación de fondo
...
Este problema puede mitigarse mediante el uso de módulos DRAM que incluyen bits de memoria adicionales y controladores de memoria que explotan estos bits. Estos bits adicionales se usan para registrar la paridad o para usar un código de corrección de errores

Chealion
fuente