¿Usaría ECC RAM en una estación de trabajo?

21

¿Se recomienda utilizar RAM ECC en estaciones de trabajo, o es algo que solo se usa en servidores? Si la RAM no ECC funciona en PC, ¿por qué necesitaríamos RAM ECC?

Jon Tackabury
fuente

Respuestas:

25

A medida que las cosas se almacenan, se dejan y eventualmente se extraen de la RAM, se produce algo de corrupción de forma natural (las teorías varían, pero la que tiene más peso en este momento es EMI de la computadora). ECC es una característica de RAM y placas base que permite la detección y corrección de esta corrupción.

La corrupción suele ser bastante menor (ECC generalmente puede detectar y corregir 1-2 bits por "palabra" de 64 bits, y eso es muuuucho más allá de las tasas de error típicas), pero aumenta en frecuencia con la densidad de la RAM. Su estación de trabajo / PC promedio nunca lo notará. En un servidor en el que ejecuta RAM de alta densidad las 24 horas, los 7 días de la semana, en un entorno de alta demanda que presta servicios críticos, debe tomar todas las medidas posibles para evitar que las cosas se rompan.

También tenga en cuenta que la tarjeta madre debe admitir la RAM ECC, y la estación de trabajo / PC promedio no lo admite.

La RAM ECC es más costosa que la que no es ECC, es mucho más sensible a las velocidades de reloj y puede sufrir un pequeño impacto en el rendimiento (1-2%). Si ayuda, una analogía que funciona es la RAM a los controladores RAID. En su PC, ese RAID de software asistido por hardware integrado en su conjunto de chips es una gran protección contra fallas de un solo disco. En un servidor, eso nunca sería suficiente. Necesita RAID de hardware totalmente respaldado por batería de alta gama con RAM incorporada para garantizar que no pierda datos debido a un corte de energía, falla del disco o lo que sea.

Entonces, no, realmente no necesita RAM ECC en su estación de trabajo. El beneficio simplemente no justificará el precio.

sh-beta
fuente
2
Como también se señaló en la respuesta de Basil Bourque , los precios han convergido en estos días (cuando vi más recientemente, la diferencia de precio era del ~ 10% que esperaría del área de chips adicional, por la misma cantidad de RAM utilizable) . Podría valer la pena revisar particularmente la última oración a la luz de esto.
un CVn
10

Si este artículo tiene algo que ver, entonces debe usar RAM ECC.

No es solo una cuestión de "No ejecuto un servidor, así que no lo necesito". Depende de cuánto valoras tus datos. No es solo una cuestión de accidentes ocasionales: el problema es que podría contraer corrupción y no tener forma de saber que está sucediendo.

geofftnz
fuente
3
Del artículo: "[...] 4 GB de RAM tiene un 96% de posibilidades de tener un error de bit en tres días sin RAM ECC". Esto parece que las computadoras deberían fallar constantemente y los datos deberían corromperse todo el tiempo. Sin embargo, todo el mundo parece estar bastante bien sin ECC ... ¿por qué?
Calimo
1
Eso es porque ese artículo es falso cuando se trata de la tasa de error. La tasa de error real es más baja en muchos órdenes de magnitud. Vea el hilo relevante de reddit reddit.com/r/programming/comments/ayleb/…
mimrock
Cualquiera que sea la tasa de error, también depende de lo que se vea afectado. Lo más probable es que no sea algo que cause un bloqueo del sistema.
sudo
8

La RAM ECC se vuelve más interesante a medida que aumenta el tamaño de la memoria. La probabilidad de un error de un solo bit en una máquina con 8GB de RAM es bastante mayor que en los días de una PC / XT de 640K, simplemente debido a la mayor cantidad de bits. En un servidor de base de datos donde esa RAM podría estar en un búfer de disco, un error de bit también puede dañar el almacenamiento del disco. Generalmente esperaría usar la memoria ECC en un servidor.

Algunas estaciones de trabajo (particularmente aquellas con CPU Xeon u Opteron) toman memoria registrada, que de todos modos solo viene en sabores ECC. En una PC de escritorio, puede verlo como exagerado.

Preocupado por TunbridgeWells
fuente
4

La RAM ECC está diseñada para ayudar a prevenir y corregir errores basados ​​en la memoria, generalmente utilizando algún tipo de código de hamming o redundancia modular. Esto es muy útil en servidores que contienen datos importantes o que necesitan alta disponibilidad, pero tiene un costo.

Si bien es probable que valga la pena pagar más por sus servidores importantes, ¿realmente desea hacerlo para su máquina de escritorio? ¿Importa si ocasionalmente se produce un error de memoria? Claro que es importante si su base de datos SQL deja caer algunos datos durante una transacción, pero ¿le importa si su documento de Word se ve afectado por una pequeña falla de memoria?

Sam Cogan
fuente
4

Si desea una estación de trabajo confiable, entonces quiere RAM ECC para ella. Se bloqueará con menos frecuencia y el trabajo realizado y los documentos almacenados en caché en RAM no se corromperán al azar.

Zan Lynx
fuente
44
Parece una posibilidad inmensamente pequeña de mejorar la estabilidad. Los únicos bloqueos relacionados con RAM que conozco en las estaciones de trabajo se deben a RAM defectuosa o aplicaciones incorrectas, nunca algo que ECC hubiera evitado. Tiene algo de sentido (léase: solo un poquito) en los servidores donde está procesando terabytes de datos constantemente, pero en las estaciones de trabajo tal vez lo único que se acerca es el procesamiento de video o el procesamiento de video de alta gama. En resumen, creo que puede obtener una estación de trabajo completamente confiable sin ECC RAM.
Chris Thorpe
Ejecuté memtest86 varias veces durante la noche sin ningún error. Esa es la frecuencia con la que se produce el cambio de memoria ... Si las vidas dependen de ello, eso justificaría el uso de ECC; de lo contrario, no creo que este sea un problema real en el 99.9% de los casos. Es muy poco probable que 1 bit aleatorio al mes llegue a algo crítico en terabytes de datos.
inf3rno
De c. ZFS es una excepción.
inf3rno
1
@ inf3rno Ese argumento? Durante la noche no es nada. La altitud importa. Vivo en Colorado y en el sistema ECC veo varios errores corregibles cada mes. Regrese con los registros de un sistema ECC o no tiene información. Lea también el informe de Google sobre errores de ECC.
Zan Lynx
4

Un beneficio adicional de ECC sobre lo mencionado anteriormente es que puede detectar RAM defectuosa. Si bien ejecutar una sesión larga de memtest86 generalmente encontrará algún problema, puede haber problemas muy específicos con la RAM que solo aparecen raramente y en ciertos casos de uso. Esto todavía puede suceder con mucha más frecuencia que la corrupción contra la que está perfectamente protegida la memoria RAM ECC, tal vez una vez al mes. Entonces, si instala un software de monitoreo, puede estar seguro de que su RAM es buena o reemplazar los chips defectuosos. Sigue siendo un beneficio marginal, pero como la memoria ECC no es mucho más cara que la RAM normal, puede valer la pena.

Marius Bjørnstad
fuente
1

La memoria ECC ahora cuesta aproximadamente lo mismo que la memoria no ECC, ya que los precios han bajado. Así que revise los precios; si los precios están cerca, compre ECC si su estación de trabajo lo admite.

Albahaca Bourque
fuente
1

Creo que puede haber cierta confusión solo en función del título de la pregunta.

Si solo se refiere a la PC de escritorio promedio, entonces eso generalmente se basa en una plataforma que ni siquiera tiene soporte ECC.

Si te refieres a una computadora de clase de estación de trabajo , entonces es muy probable que venga con memoria ECC, te importe o no.
En general, la clase de estación de trabajo se basa típicamente en hardware de servidor esencialmente pero con gráficos adecuados y empaquetados en un factor de forma diferente.

La carga de trabajo esperada también es más exigente que la de la PC de escritorio, por lo que si reconoce que ECC tiene sentido para los servidores, entonces creo que no es una exageración que ECC también tenga sentido para las estaciones de trabajo.

Para las PC de escritorio, existe cierto debate sobre si ECC tendría sentido o no. Se puede argumentar absolutamente que todo debería tener ECC pero, en este momento, no es práctico ya que la industria ha decidido hacer de ECC una característica para diferenciar el hardware de gama alta.

Håkan Lindqvist
fuente
0

Según el artículo Zan Lynx vinculado en los comentarios: Errores de DRAM en la naturaleza: un estudio de campo a gran escala , los errores no corregibles son comunes, mientras que los errores corregibles aleatorios rara vez aparecen en un sistema. La incidencia es probablemente de unos pocos en un año, pero depende del uso.

Por lo tanto, en un entorno de servidor, los errores corregibles pueden no ser tan importantes, pero rara vez arranca las máquinas del servidor, por lo que los errores no corregibles causados ​​por la falla de la RAM pueden no detectarse durante un tiempo corrompiendo sus datos. Creo que esa es la razón principal por la que los servidores necesitan ECC. Las estaciones de trabajo arrancan y, por lo tanto, verifican la RAM con frecuencia, de modo que cada reinicio pueda detectar fallas de hardware. Si esa frecuencia es suficiente para su negocio, entonces creo que no necesitará RAM ECC en su estación de trabajo.

Si hablamos de errores de memoria, es mejor versionar los documentos importantes en el servidor. Entonces, si la estación de trabajo lee y modifica algo, entonces el contenido original no debe sobrescribirse en el servidor. Las copias de seguridad regulares pueden hacer lo mismo por usted.

Otro aspecto de esta pregunta es la seguridad. Si su estación de trabajo está conectada a una red no segura, entonces podría ser vulnerable al ataque del martillo de fila , que explota un fenómeno relacionado con la DRAM. Entonces, desde la perspectiva de seguridad, es mejor usar RAM ECC.

inf3rno
fuente