Dovrei usare il BIOS "Advanced ECC" nel BIOS Dell PowerEdge R710 con moduli DIMM ECC?


14

Ho un Dell PowerEdge R710 con due CPU Intel Xeon E5503 doppie. Dispone di DIMM ECC da 96 GB (12x8 GB). Nel suo BIOS, la memoria è configurata per "Advanced ECC".

La mia domanda è se i miei DIMM sono già ECC, ha senso abilitare questa modalità "Advanced ECC" nel BIOS o devo passare a "Optimized"?

Dell descrive queste modalità come tali:

Modalità ECC avanzata Questa modalità utilizza due MCH e li "lega" insieme per emulare un DIMM del bus dati a 128 bit. Viene utilizzato principalmente per ottenere una correzione dati dispositivo singolo (SDDC) per moduli DIMM basati sulla tecnologia DRAM x8. SDDC è supportato con DIMM basati su x4 in ogni modalità di memoria. Un MCH è completamente inutilizzato e qualsiasi memoria installata in questo canale genererà un messaggio di avviso durante il POST.

Modalità di memoria ottimizzata In questa modalità, gli MCH funzionano indipendentemente l'uno dall'altro; ad esempio, uno può essere inattivo, uno può eseguire un'operazione di scrittura e l'altro può prepararsi per un'operazione di lettura. La memoria può essere installata su uno, due o tre canali. Per realizzare appieno il vantaggio in termini di prestazioni della modalità di memoria ottimizzata, è necessario popolare tutti e tre i canali per CPU. Ciò implica che alcune configurazioni di memoria "atipiche", come 3 GB, 6 GB o 12 GB, offriranno le migliori prestazioni. Questa è la modalità consigliata a meno che non siano necessarie funzionalità RAS specifiche.

Manuale dell'utente dell'hardware dei sistemi Dell PowerEdge R710 (PDF)

Risposte:


23

Fa la differenza, avrà senso solo se si richiedono le funzionalità RAS (Affidabilità, Disponibilità e Servizio) su dispositivi x4 o x8 e si comprendono i compromessi per le proprie esigenze. Maggiori dettagli possono essere spiegati nel white paper Dell Dell ™ PowerEdge ™ Server 2009 - Memoria .

Inoltre, la configurazione e il layout con dettagli specifici dell'R710 sono disponibili nella Guida tecnica per PowerEdge R710 - (Google questo perché non ho la reputazione per il collegamento).

Il problema importante da notare è la differenza tra ECC sul chip e "Advanced ECC" fornito dal BIOS Dell per la correzione dei dati a dispositivo singolo (SDDC). Avrai un impatto sulle prestazioni su entrambi. L'ECC si riprenderà da errori durante le scritture sul chip. Tuttavia, SDDC fa un ulteriore passo avanti e organizzerà i bit in modo che un intero chip possa fallire ed essere ancora recuperabile. Vedi un esempio e dettagli Chipset SDDC E7500

Il problema è se le prestazioni e / o l'affidabilità sono la massima preoccupazione nell'uso specifico della macchina. Se un errore del chip causerà una perdita di dati o utilizzo critici su questa macchina ed è non ridondante nell'implementazione, Advanced ECC potrebbe essere un ottimo modo per procedere. Tuttavia, lo fai con un impatto sulle prestazioni che potrebbe essere più importante per te.

Ho implementato entrambi sul campo sui server Dell PowerEdge per singole implementazioni di Microsoft SQL Server. Se posso essere di maggiore aiuto, commenta solo per farmi sapere.

Spero possa aiutare.

EDIT: gap di copertura / implementazioni ECC

Sì, esiste un gap di copertura anche se si implementano entrambi. Poiché, in particolare, stai utilizzando un cluster di server ad alta disponibilità, IMHO dovresti utilizzare Advanced ECC. L'impatto sulle prestazioni è minimo rispetto ai vantaggi per i dispositivi cluster. Secondo Crucial si ha solo una riduzione del 2% delle prestazioni sulla memoria ECC in generale.

Il divario sarebbe più specifico per i tipi di errori che si verificano e come ciascuno gestisce gli errori. Nella tua situazione specifica non dovrebbe tradursi in perdita di dati. Poiché si tratta di un DBMS aziendale, gli errori, i problemi di concorrenza, ecc. Sono gestiti a livello di software al fine di prevenire la perdita di dati. Viene mantenuta una cronologia dettagliata delle modifiche apportate a un DBMS correttamente configurato e il software che lo utilizza può in genere essere configurato per avere il "rollback" della transazione in caso di errore grave.

Implementazioni ECC

ECC tenterà di correggere eventuali errori di bit nella lettura / scrittura della memoria. Tuttavia, se l'errore è più significativo, nemmeno ECC sarà in grado di recuperare, causando una potenziale perdita di dati. Ci sono altre discussioni su ECC anche su ServerFault / Cos'è ram ECC e perché è meglio?

Secondo Wikipedia su ECC_Memory

La memoria ECC mantiene un sistema di memoria effettivamente privo di errori a singolo bit ...

SDDC

Se fai riferimento al documento del chipset E7500 sopra (nota che il 55xx / 56xx di Intel richiede login / partnership ma l'idea è simile, motivo per cui non ho collegato originariamente), che descrive SDDC e come è stato reso possibile. Fondamentalmente, utilizza una tecnica per organizzare le parole scritte in memoria che garantisce che tutte le parole siano scritte in modo tale che ogni parola conterrà solo un errore a singolo bit, ovvero la parola dovrebbe essere recuperabile dall'errore a singolo bit (come sopra). Ora è per parola, quindi potrebbe potenzialmente recuperare da errori fino a 4 bit su dispositivi x4 (1 per parola) e errori fino a 8 bit su dispositivi x8 (ancora 1 per parola) correggendo l'errore ogni parola.

Ulteriori errori, più errori di bit, errore totale di memoria, errore del canale, errore del bus, ecc. Possono comunque causare problemi orribili, ma è per questo che si dispone di un cluster e di un DBMS aziendale.

In breve, se hai tutto abilitato e ci sono troppi errori di bit per correggere gli algoritmi di errore, avrai comunque un errore, ovvero un gap di copertura degli errori. Questi possono essere eccezionalmente rari però.


Per essere più specifici, si tratta di un set di 3 R710 identici che eseguono il cluster Oracle DB. Quindi la disponibilità di una singola macchina non è della massima importanza. Tuttavia, la corruzione dei dati è preoccupante. Ho visto la guida tecnica R710. Non aveva molte informazioni aggiuntive sulla memoria. Quindi con ECC on-dimm rileverà / correggerà gli errori all'interno dei chip del dimm? Tuttavia, Advanced ECC rileverà / correggerà errori per l'intero dimm? In tal caso, esiste un divario di copertura tra questi 2 metodi?
Mxx,

@Mxx Ho aggiornato la mia risposta per cercare di spiegare. IMHO dal momento che stai eseguendo un cluster Oracle DB, sono dubbioso che avrai la perdita di dati. Nel raro caso di un errore, il DBMS è costruito per prevenire la perdita di dati e altri problemi. Nel tuo caso per il cluster, abiliterei Advanced ECC poiché le prestazioni dovrebbero essere trascurabili, ma puoi provare sotto carico se hai dubbi.
Matthew Reid,

Grazie mille per la risposta. Mi dispiace, ma non sono ancora chiaro su una cosa. Cosa potrebbe proteggermi "Advanced ECC" da quel ECC on-dimm? Se stiamo usando dbms, allora non avrebbe senso cambiare il BIOS in "modalità ottimizzata" per ottenere un vantaggio in termini di prestazioni della configurazione della memoria a tre canali e sarà protetto da ECC on-dimm e dalla validazione di Oracle?
Mxx,

@Mxx Suppongo che non sia esattamente garantito in entrambi i modi. Tuttavia, con l'opzione Advanced ECC On, sarai in grado di recuperare da più errori senza intervento (minore probabilità complessiva di un errore bit) e l'hit performance dovrebbe essere basso. È certamente più basso cercare di correggere nel DBMS. Mentre il DBMS potrebbe essere in grado di salvare i dati dell'utente, l'esperienza dell'utente finale potrebbe comunque essere presentata in un arresto anomalo del software e / o nel rollback di un'operazione potenzialmente di grandi dimensioni. Suppongo che con il monitoraggio se il chip non funziona e la frequenza degli errori aumenta, Advanced ECC potrebbe darti il ​​tempo di sostituire il DIMM in modo pulito.
Matthew Reid,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.