¿Debo usar la BIOS “Advanced ECC” en Dell PowerEdge R710 Bios con ECC DIMM?

14

Tengo un Dell PowerEdge R710 con dos CPU Intel Xeon E5503. Tiene 96GB (12x8GB) de DIMM ECC. En su BIOS, la memoria está configurada para "ECC avanzado".

Mi pregunta es si mis DIMM ya son ECC, ¿tiene sentido habilitar este modo "ECC avanzado" en el BIOS o debería cambiar a "Optimizado"?

Dell describe estos modos como tales:

Modo ECC avanzado Este modo utiliza dos MCH y los "une" para emular un DIMM de bus de datos de 128 bits. Esto se utiliza principalmente para lograr una corrección de datos de dispositivo único (SDDC) para DIMM basados ​​en la tecnología DRAM x8. SDDC es compatible con DIMM basados ​​en x4 en todos los modos de memoria. Un MCH no se utiliza por completo, y cualquier memoria instalada en este canal generará un mensaje de advertencia durante la POST.

Modo optimizado de memoria En este modo, los MCH se ejecutan independientemente uno del otro; por ejemplo, uno puede estar inactivo, uno puede realizar una operación de escritura y el otro puede prepararse para una operación de lectura. La memoria puede instalarse en uno, dos o tres canales. Para aprovechar al máximo el beneficio de rendimiento del modo de memoria optimizada, se deben completar los tres canales por CPU. Esto implica que algunas configuraciones de memoria 'atípicas', como 3GB, 6GB o 12GB, producirán el mejor rendimiento. Este es el modo recomendado a menos que se necesiten características RAS específicas.

Manual del propietario del hardware de los sistemas Dell PowerEdge R710 (PDF)

Mxx
fuente

Respuestas:

23

Realmente hace la diferencia, solo tendrá sentido si necesita las funciones RAS (Confiabilidad, Disponibilidad y Servicio) en dispositivos x4 o x8 y comprende las compensaciones para sus necesidades. Se pueden explicar más detalles en el documento técnico de Dell Servidores Dell ™ PowerEdge ™ 2009 - Memoria .

Además, la configuración y el diseño con detalles específicos del R710 están disponibles en la Guía técnica del PowerEdge R710 - (Google esto porque no tengo reputación de enlace).

La cuestión importante a tener en cuenta es la diferencia entre ECC en el chip y el "ECC avanzado" proporcionado por el BIOS de Dell para la corrección de datos de dispositivo único (SDDC). Tendrá un impacto en el rendimiento de ambos. El ECC se recuperará de los errores durante las escrituras en el chip. Sin embargo, SDDC va un paso más allá y organizará los bits para que un chip completo pueda fallar y aún así ser recuperable. Vea un ejemplo y detalles del chipset SDDC E7500

El problema es si su rendimiento y / o confiabilidad son la mayor preocupación en su uso específico de la máquina. Si una falla en el chip causará la pérdida de datos críticos o el uso de esta máquina y no es redundante en la implementación, Advanced ECC puede ser una excelente opción. Sin embargo, lo hace con un impacto en el rendimiento que puede ser más importante para usted.

He implementado ambos en el campo en servidores Dell PowerEdge para implementaciones individuales de Microsoft SQL Server. Si puedo ser de más ayuda, solo comente para avisarme.

Espero que ayude.

EDITAR: brechas de cobertura / implementaciones de ECC

Sí, hay una brecha de cobertura incluso si implementa ambos. Dado que está utilizando específicamente un clúster de servidores de alta disponibilidad, en mi humilde opinión, debe utilizar el ECC avanzado. Su impacto en el rendimiento es mínimo en comparación con los beneficios para los dispositivos agrupados. Según Crucial, en general solo tiene una disminución del 2% en el rendimiento de la memoria ECC .

La brecha sería más específica para los tipos de errores que ocurren y cómo cada uno maneja los errores. En su situación específica no debería traducirse en pérdida de datos. Como se trata de un DBMS empresarial, los errores, los problemas de concurrencia, etc. se gestionan a nivel de software para evitar la pérdida de datos. Se mantiene un historial detallado de los cambios en un DBMS configurado correctamente y el software que lo utiliza generalmente puede configurarse para que la transacción "retroceda" si ocurre un error grave.

Implementaciones de ECC

ECC intentará corregir cualquier error de bit en la lectura / escritura de la memoria. Sin embargo, si el error es más significativo, entonces ni siquiera el ECC podrá recuperarse, causando una posible pérdida de datos. También hay más discusión sobre ECC en ServerFault / ¿Qué es ECC ram y por qué es mejor?

Según Wikipedia en ECC_Memory

La memoria ECC mantiene un sistema de memoria efectivamente libre de errores de un solo bit ...

SDDC

Si hace referencia al documento del conjunto de chips E7500 anterior (tenga en cuenta que el 55xx / 56xx de Intel requiere inicio de sesión / asociación, pero la idea es similar, por eso no lo vinculé originalmente), que describe SDDC y cómo es posible. Básicamente, utiliza una técnica para organizar las palabras escritas en la memoria que garantiza que todas se escriban de tal manera que cada palabra solo contendrá un error de un solo bit, es decir, la palabra debe ser recuperable del error de un solo bit (como se indicó anteriormente). Ahora eso es por palabra, por lo que podría recuperarse de errores de hasta 4 bits en dispositivos x4 (1 por palabra) y errores de hasta 8 bits en dispositivos x8 (aún 1 por palabra) por error al corregir cada palabra.

Los errores adicionales, más errores de bits, la falla total de la memoria, la falla del canal, la falla del bus, etc. aún pueden causar problemas horribles, pero es por eso que tiene un clúster y un DBMS empresarial.

En resumen, si tiene todo habilitado y hay demasiados errores de bits para que los algoritmos de corrección de errores corrijan, seguirá teniendo un error, es decir, un intervalo de cobertura de error. Sin embargo, estos pueden ser excepcionalmente raros.

Matthew Reid
fuente
Para ser más específico, se trata de un conjunto de 3 R710 idénticos que ejecutan el clúster de Oracle DB. Por lo tanto, la disponibilidad de una sola máquina no es de la mayor importancia. Sin embargo, la corrupción de datos es preocupante. He visto la guía técnica R710. No tenía mucha información adicional sobre la memoria. Entonces, ¿con ECC en dimm detectará / corregirá errores dentro de los chips de dimm? Sin embargo, ¿Advanced ECC detectará / corregirá errores para todo el dimm? Si ese es el caso, ¿hay una brecha de cobertura entre estos 2 métodos?
Mxx
@Mxx He actualizado mi respuesta para tratar de explicar. En mi humilde opinión, ya que está ejecutando un clúster de Oracle DB, dudo que tenga pérdida de datos. En el raro caso de una falla, el DBMS está diseñado para evitar la pérdida de datos y otros problemas. En su caso para el clúster, habilitaría Advanced ECC ya que el rendimiento debería ser insignificante, pero puede probarlo bajo carga si tiene dudas.
Matthew Reid
Muchas gracias por la respuesta. Lo siento, pero todavía no tengo claro una cosa. ¿Qué podría protegerme el "ECC avanzado" de ese ECC en la oscuridad? Si estamos utilizando dbms, ¿no tendría sentido cambiar la BIOS al "modo optimizado" para obtener un beneficio de rendimiento de la configuración de memoria de tres canales y estará protegido por ECC en el dimm y la propia validación de Oracle?
Mxx
@Mxx Supongo que no está exactamente garantizado de ninguna manera. Sin embargo, con la opción Advanced ECC On, podrá recuperarse de más errores sin intervención (menor probabilidad general de un error de bit) y el impacto en el rendimiento debería ser bajo. Ciertamente es menor intentar corregir en el DBMS. Si bien el DBMS puede guardar sus datos, la experiencia del usuario final aún puede presentarse en un bloqueo de software y / o reversión de una operación potencialmente grande. Supongo que con la supervisión si el chip falla y aumenta la frecuencia de errores, Advanced ECC podría darle tiempo para reemplazar el DIMM limpiamente.
Matthew Reid