Soll ich das BIOS „Advanced ECC“ in Dell PowerEdge R710-BIOS mit ECC-DIMMs verwenden?

14

Ich habe ein Dell PowerEdge R710 mit zwei Intel Xeon E5503-CPUs. Es verfügt über 96 GB (12 x 8 GB) ECC-DIMMs. In seinem BIOS ist der Speicher für "Advanced ECC" konfiguriert.

Meine Frage ist, ob meine DIMMs bereits ECC sind. Ist es sinnvoll, diesen "Advanced ECC" -Modus im BIOS zu aktivieren, oder sollte ich zu "Optimized" wechseln?

Dell beschreibt diese Modi als solche:

Erweiterter ECC-Modus In diesem Modus werden zwei MCHs verwendet und miteinander verbunden, um ein 128-Bit-Datenbus-DIMM zu emulieren. Dies wird hauptsächlich verwendet, um eine SDDC (Single Device Data Correction) für DIMMs auf Basis der x8-DRAM-Technologie zu erzielen. SDDC wird mit x4-basierten DIMMs in jedem Speichermodus unterstützt. Ein MCH wird vollständig nicht verwendet, und jeder in diesem Kanal installierte Speicher generiert während des POST eine Warnmeldung.

Speicheroptimierter Modus In diesem Modus werden die MCHs unabhängig voneinander ausgeführt. Beispielsweise kann einer inaktiv sein, einer kann eine Schreiboperation ausführen und der andere kann eine Leseoperation vorbereiten. Der Speicher kann in einem, zwei oder drei Kanälen installiert werden. Um den Leistungsvorteil des speicheroptimierten Modus voll auszuschöpfen, sollten alle drei Kanäle pro CPU belegt sein. Dies impliziert, dass einige "atypische" Speicherkonfigurationen wie 3 GB, 6 GB oder 12 GB die beste Leistung erzielen. Dies ist der empfohlene Modus, sofern keine speziellen RAS-Funktionen erforderlich sind.

Dell PowerEdge R710-Systeme Hardware-Benutzerhandbuch (PDF)

Mxx
quelle

Antworten:

23

Dies macht einen Unterschied. Es ist nur dann sinnvoll, wenn Sie die RAS-Funktionen (Zuverlässigkeit, Verfügbarkeit und Service) für x4- oder x8-Geräte benötigen und die Kompromisse für Ihre Anforderungen kennen. Weitere Informationen finden Sie im Dell Whitepaper Dell ™ PowerEdge ™ Server 2009 - Arbeitsspeicher .

Die Konfiguration und das Layout mit spezifischen Details für das R710 finden Sie auch im Technischen Handbuch für das PowerEdge R710 - (Google, da ich keinen guten Ruf für den Link habe).

Das wichtige Problem ist der Unterschied zwischen dem ECC auf dem Chip und dem "Advanced ECC", der vom Dell-BIOS für die Datenkorrektur einzelner Geräte (SDDC) bereitgestellt wird. Sie werden eine Auswirkung auf beide Leistung haben. Der ECC wird sich von Fehlern beim Schreiben auf den Chip erholen. SDDC geht jedoch noch einen Schritt weiter und organisiert die Bits so, dass ein gesamter Chip ausfallen kann und dennoch wiederherstellbar ist. Sehen Sie sich ein Beispiel und Details des SDDC E7500-Chipsatzes an

Die Frage ist, ob Ihre Leistung und / oder Zuverlässigkeit bei Ihrer spezifischen Nutzung der Maschine von größter Bedeutung sind. Wenn ein Chipausfall zu einem Verlust kritischer Daten oder zur Auslastung dieses Computers führt und die Implementierung nicht redundant ist, bietet sich Advanced ECC an. Sie tun dies jedoch mit einer Leistungseinbuße, die für Sie möglicherweise wichtiger ist.

Ich habe beides im Feld auf Dell PowerEdge-Servern für einzelne Microsoft SQL Server-Implementierungen implementiert. Wenn ich Ihnen weiterhelfen kann, kommentieren Sie mich einfach und lassen Sie es mich wissen.

Ich hoffe, das hilft.

EDIT: Deckungslücke / ECC-Implementierungen

Ja, es gibt eine Abdeckungslücke, auch wenn Sie beide implementieren. Da Sie speziell einen Cluster von Hochverfügbarkeitsservern verwenden, sollten Sie IMHO Advanced ECC verwenden. Ihre Leistungseinbußen sind im Vergleich zu den Vorteilen für die Clustergeräte minimal. Laut Crucial sinkt die Leistung des ECC-Speichers im Allgemeinen nur um 2% .

Die Lücke wäre spezifischer für die Art der auftretenden Fehler und für die Art und Weise, wie die Fehler behandelt werden. In Ihrer speziellen Situation sollte dies nicht zu Datenverlust führen. Da es sich um ein Enterprise-DBMS handelt, werden Fehler, Parallelitätsprobleme usw. auf Softwareebene verwaltet, um Datenverlust zu vermeiden. Ein detaillierter Verlauf der Änderungen in einem ordnungsgemäß konfigurierten DBMS wird gespeichert, und die Software, die das DBMS verwendet, kann in der Regel so einrichten, dass die Transaktion zurückgesetzt wird, wenn ein schwerwiegender Fehler auftritt.

ECC-Implementierungen

Der ECC versucht, Bitfehler beim Lesen / Schreiben im Speicher zu korrigieren. Wenn jedoch der Fehler mehr signifikant ist, dann nicht einmal wird ECC der Lage sein , sich zu erholen, was potenzielle Datenverlust. Es gibt mehr Diskussionen über ECC auch bei ServerFault / Was ist ECC-RAM und warum ist es besser?

Laut Wikipedia auf ECC_Memory

ECC-Speicher hält ein Speichersystem effektiv frei von Einzelbitfehlern ...

SDDC

Wenn Sie sich auf das obige Dokument zum E7500-Chipsatz beziehen (beachten Sie, dass der 55xx / 56xx von Intel eine Anmeldung / Partnerschaft erfordert, aber die Idee ist ähnlich, weshalb ich ursprünglich keine Verknüpfung hergestellt habe), beschreibt SDDC und wie es möglich gemacht wurde. Grundsätzlich verwendet es eine Technik zum Organisieren der in den Speicher geschriebenen Wörter, die sicherstellt, dass alle so geschrieben sind, dass jedes Wort nur einen Einzelbitfehler enthält, dh das Wort sollte aus dem Einzelbitfehler (wie oben) wiederherstellbar sein. Nun, das ist pro Wort, so dass es möglicherweise bis zu 4-Bit-Fehler auf x4-Geräten (1 pro Wort) und bis zu 8-Bit-Fehler auf x8-Geräten (immer noch 1 pro Wort) durch Fehlerkorrektur jedes Wortes beheben kann.

Zusätzliche Fehler, mehr Bitfehler, totaler Speicherausfall, Kanalausfall, Busausfall usw. können immer noch schreckliche Probleme verursachen, aber aus diesem Grund haben Sie einen Cluster und ein Enterprise-DBMS.

Kurz gesagt, wenn Sie alles aktiviert haben und zu viele Bitfehler für Fehlerkorrekturalgorithmen zur Korrektur vorhanden sind, liegt immer noch ein Fehler vor, dh eine Fehlerabdeckungslücke. Diese können jedoch außergewöhnlich selten sein.

Matthew Reid
quelle
Genauer gesagt handelt es sich um einen Satz von 3 identischen R710s, auf denen Oracle DB Cluster ausgeführt wird. Die Verfügbarkeit einer einzelnen Maschine ist daher nicht von höchster Bedeutung. Datenkorruption ist jedoch problematisch. Ich habe den technischen Leitfaden für R710 gesehen. Es gab nicht viele zusätzliche Informationen zum Gedächtnis. Mit On-Dimm-ECC werden also Fehler in den Chips des Dimms erkannt / korrigiert? Advanced ECC erkennt / korrigiert jedoch Fehler für den gesamten Dimmwert. Wenn dies der Fall ist, gibt es eine Abdeckungslücke zwischen diesen beiden Methoden?
Mxx
@ Mxx Ich habe meine Antwort aktualisiert, um zu versuchen, zu erklären. Ich bezweifle, dass Sie Datenverlust haben, da Sie einen Oracle DB-Cluster ausführen. Im seltenen Fall eines Fehlers wird das DBMS so aufgebaut, dass Datenverlust und andere Probleme vermieden werden. In Ihrem Fall für den Cluster würde ich Advanced ECC aktivieren, da die Leistung vernachlässigbar sein sollte, aber Sie können es unter Last testen, wenn Sie Bedenken haben.
Matthew Reid
Vielen Dank für die Antwort. Es tut mir leid, aber eines ist mir immer noch nicht klar. Was könnte mich "Advanced ECC" davor schützen, dass das On-Dimm-ECC es nicht könnte? Wenn wir dbms verwenden, macht es dann keinen Sinn, das BIOS in den "optimierten Modus" zu schalten, um einen Leistungsvorteil der Dreikanal-Speicherkonfiguration zu erzielen, und wird dies durch On-Dimm-ECC und Oracle-eigene Validierung geschützt?
Mxx
@ Mxx Ich nehme an, es ist nicht genau so oder so garantiert. Mit der Advanced ECC-Option On können Sie jedoch mehr Fehler ohne Eingreifen beheben (geringere Gesamtwahrscheinlichkeit eines Bitfehlers), und die Leistungseinbußen sollten gering sein. Es ist sicherlich weniger schwierig, Korrekturen am DBMS vorzunehmen. Während das DBMS möglicherweise in der Lage ist, Ihre Daten zu speichern, kann die Endbenutzererfahrung dennoch in einem Software-Absturz und / oder einem Rollback eines potenziell großen Vorgangs auftreten. Ich nehme an, mit der Überwachung, ob der Chip ausfällt und die Fehlerhäufigkeit zunimmt, könnte Advanced ECC Ihnen Zeit geben, das DIMM sauber auszutauschen.
Matthew Reid