Come verificare se la RAM è in esecuzione in modalità ECC?


11

Ho aggiornato questo post da quando ho sostituito il processore, ma il nocciolo della mia domanda (e purtroppo anche i risultati) sono gli stessi.


Ho creato la mia prima scatola FreeNAS e volevo usare la RAM ECC poiché desidero archiviare i dati critici. Dato che ho un budget limitato, volevo scegliere la soluzione più economica che potesse comunque supportare la RAM ECC.

Dopo aver fatto qualche ricerca, ho scoperto che ho bisogno di una scheda madre, memoria e una CPU che supporti ECC. La mia scheda madre preferita è il "Gigabyte X150M-Pro ECC" che ha il chipset C232, DDR4 e un socket LGA1151.

Ho anche acquistato un kit di due DIMM realizzati da Kingston con il numero di modello "KVR21E15S8K2 / 8" ( foglio delle specifiche ). Gigabyte ha pubblicato un elenco di moduli di memoria testati e i miei moduli sembrano essere supportati con ECC funzionante ( elenco di moduli supportati ).

Etichetta RAM

Dato che ho un budget limitato, avevo bisogno di una CPU Skylake economica che supporti ECC. Secondo Intel, il Celeron G3900 supporta ECC, quindi sono andato con quello.

Dopo aver creato il computer, volevo verificare che il mio sistema funzionasse davvero con la memoria ECC ed entri nel BIOS della scheda madre. Da vari siti Internet, ho scoperto che alcune schede madri hanno una sezione speciale che dovrebbe dire se ECC funziona, ma la mia scheda madre non sembra averlo. Ho controllato tutti i menu e non sono riuscito a trovare una sezione simile.

Dopo aver fatto qualche ricerca in più e trovato un post sullo scambio di stack Unix e Linux che non ha risolto il mio problema. Ho provato l'ultimo memtest86+che, da quello che ho potuto dire, non mostra nemmeno il valore "ECC". Ho provato la versione 4.20 precedente utilizzata dai sistemi Puget che mostrava "ECC: off". Tuttavia, dopo aver letto il post menzionato in precedenza, dubito che dica la verità (forse è per questo che la funzionalità è stata rimossa?). Inoltre, entrambe le versioni non hanno letto la velocità e la latenza corrette del modulo DIMM, il che aumenta i miei dubbi memtest86+.

memtest86 + screenshot

Un altro modo popolare per scoprire, se ECC funziona, era emettere il dmidecode -t memorycomando e leggere Total Widthe Data Width. I miei risultati sono stati 128 Bitse 64 Bitsrispettivamente. Una parte dell'output mostrava dettagli sull'array di memoria che aveva una coppia chiave-valore di Error Correction Type: Single-bit ECC.

Mi aspettavo 72 bitsil Total Width, quindi ho pensato che potesse essere correlato al doppio canale e ho spostato i moduli di memoria in due slot adiacenti che dovrebbero impedire il doppio canale, ma il risultato è stato lo stesso. Ecco l' output completo di dmidecode -t memory.

Ho anche provato l'interessante programma C pubblicato dai sistemi Puget, ma il risultato è stato 0, senza indicare il supporto ECC.

Ora sto iniziando a dubitare che i dati sul sito Web di Intel siano corretti e che la mia CPU non supporti effettivamente ECC. Sia la memoria che la scheda madre sono specificamente contrassegnate con "ECC", quindi posso escluderle.

È possibile che la versione del BIOS abbia bisogno di un aggiornamento (al momento non ce n'è) per abilitare ECC o ECC in realtà già funziona e non sono riuscito a verificarlo? Oppure la scelta della CPU è sbagliata, se voglio eseguire la memoria ECC e il sito Web di Intel è sbagliato / fuorviante?

Se la mia CPU si rivelasse la scelta sbagliata, quale sarebbe la scelta migliore per una "CPU ECC economica"?

AGGIORNAMENTO: ho visto alcune nuove indicazioni che il mio sistema potrebbe effettivamente funzionare con ECC abilitato e lo dmidecodestrumento riporta solo dati strani. Nel forum di FreeNAS l'utente Dusan sta usando hardware di livello server (SuperMicro MB, CPU Xeon, Kingston DIMM) e ha un output simile con 128 Bits. Ma ha scritto che non è sicuro di se stesso, se funziona davvero.

AGGIORNAMENTO 2: Come menzionato yagmoth555 nella sua risposta a questa domanda, sembra che la mia scheda madre supporti solo ECC con processori Xeon, anche se pensavo che quella nota fosse un relitto di precedenti manuali che erano stati copiati. Immagino che ciò significhi che devo cercare un processore Xeon ..: - /


AGGIORNAMENTO 3: Ho comprato un Xeon E3-1220v5 ora che ovviamente supporta ECC e dovrebbe soddisfare i requisiti del manuale. Ho eseguito di nuovo tutti i test per verificare la funzionalità ECC e i risultati sono sostanzialmente identici:

ecc_check e dmidecode

Dai commenti su Puget Systems, sembra anche che il ecc_check.cprogramma non funzioni sui processori Xeon e Core i7 ..: - /

memtest86+Questa volta ho verificato un po 'di più e sono abbastanza certo che non supporta affatto il DDR4 o il chipset C232, poiché segnala non solo la velocità e i tempi sbagliati ma anche DDR3 invece del DDR4 installato. Tuttavia, ha rilevato il processore giusto, ma ho ancora ottenuto lo stesso risultato finale con entrambe le versioni di memtest86+:

memtest86 + v5.01

La versione 4.20 non rileva nemmeno correttamente il mio processore ..

memtest86 + v4.20

Qualche idea su come altro posso testare per ECC è molto apprezzata.


Bene, se la tua macchina non supporta ECC, non si avvia :)
Orphans

1
@Orphans Prima di trovare la scheda madre, ne ho viste alcune meno costose che hanno richiesto il "supporto ECC" su altri chipset come Z170 ecc. Si scopre che ciò significa che la scheda può funzionare (non arrestarsi in modo anomalo) con la memoria ECC ma non la utilizzerà. Quindi mi chiedo se il mio caso sia uno del genere?
comfreak,

Se ECC di solito lo vedi nella sezione POST. Puoi premere ESC durante l'avvio per vedere la schermata di boit?
yagmoth555

Prova anche memtest da memtest86.com
citrin,

@comfreak hmm, hai ragione.
Orphans

Risposte:


4

Oggi ho scoperto che esiste una versione commerciale di memtest86(senza +) di PassMark che offre anche una versione gratuita che fortunatamente includeva ECC-Checks.

Inoltre supporta anche DDR4 e tutte le altre funzionalità di memtest86+.

Il mio risultato sembra essere positivo per il supporto ECC, quindi lo chiamerò fatto, anche se speravo di ottenere lo stesso risultato con strumenti "tradizionali" come dmidecode.

risultato memtest86


Se qualcuno si imbatte in questo post in un secondo momento e ha bisogno di ulteriori convalide e test, offre anche una versione a pagamento che supporta l'iniezione di errori ECC per testare effettivamente le capacità ECC.


3

Modificato : Cattivo nuovo dal manuale della scheda madre ...:

inserisci qui la descrizione dell'immagine


Vedo che esegui BSD / Linux, eseguilo all'interno del sistema operativo; (Disponibile per FreeNAS )

dmidecode -t 17

Dovresti avere un output come:

dmidecode 2.12 SMBIOS 2.5 present.

Handle 0x1100, DMI type 17, 28 bytes Memory Device Array Handle: 0x1000 Error Information Handle: Not Provided Total Width: 72 bits Data Width: 64 bits Size: 2048 MB Form Factor: DIMM Set: 1 Locator: DIMM1 Bank Locator: Not Specified Type: DDR2 Type Detail: Synchronous Speed: 667 MHz Manufacturer: AD00000000000000 Serial Number: 00002062 Asset Tag: 010839 Part Number: HYMP125P72CP8-Y5 Rank: 2

La larghezza totale: 72 bit è la parte che stai cercando.

Sul sistema Windows è possibile eseguire

wmic MEMORYCHIP get DataWidth,TotalWidth

// ECC Memory DataWidth TotalWidth 64 72

// Larghezza di memoria non ECC DataWidth TotalWidth 64 64

La risposta per FreeBSD e Windows ha preso da


Questo è fondamentalmente quello che ho già provato dmidecode -t memorye il mio risultato è stato di 128 bit Totale 64 bitData
comfreak

@comfreak dmidecode -t 17 restituisce cosa?
yagmoth555

Praticamente ottengo lo stesso risultato come dmidecode -t memory: slexy.org/view/s2JimvAzl6
comfreak

@comfreak bene, 128 non ha senso per me. di solito è 64 non ecc o 64b + 8b (72) per ECC (mirror ?? 64 + 64?). ma la ricerca di 'dmidecode larghezza totale 128' elenca molti post di freenas ... molti sembrano provare a rilevare l'ECC con lo script python
./ecc_check.py

La mia ipotesi era che potesse essere correlata al doppio canale, ma ottengo lo stesso risultato anche quando inserisco i due moduli in due canali separati, il che significa che il doppio canale non dovrebbe funzionare.
comfreak,

3

Utilizzando un processore Ryzen 7, nessuno degli strumenti citati ha funzionato neanche per me. Tuttavia, con un kernel Linux abbastanza recente, gli strumenti di edac-utils, edac-ctl ed edac-util possono leggere lo stato ECC e anche cose come il numero di errori corretti. Il registro del kernel conterrà anche righe con "EDAC" in dmesg, che dovrebbe anche fornire alcune informazioni. Questa funzionalità può essere ulteriormente testata overcloccando la RAM e verificando che vengano segnalati errori (se si va abbastanza in alto), che è la prova più che si può ottenere che funzioni davvero. Tuttavia, anche se questi strumenti segnalano errori o non funzionano, ciò significa solo che la lettura delle informazioni sullo stato ECC non è supportata, non sembra esserci un modo affidabile al 100% per dimostrare che ECC NON funziona ...


1
Hai provato Passmarks memtest86? (Quello che ho citato nella mia risposta)
comfreak

Sebbene l'output possa variare, per verificare le informazioni EDAC in dmesg è possibile eseguire dmesg | grep EDAC(potrebbe essere necessario eseguirlo con i privilegi di root). Ad esempio, su un sistema basato su Ryzen con memoria ECC installata e abilitata nel BIOS (se applicabile), è possibile che venga visualizzata una riga simileamd64: Node 0: DRAM ECC enabled.
Joe,

0

Per schede madri e chipset non server, solo schede madri AMD specifiche (come ASRock) e qualsiasi chipset AMD offrono ECC.

Per Intel, rendono ECC disponibile solo su chipset Xeon server. Intel disabilita ECC sui propri chipset desktop.


Potrebbe essere vero, ma non risponde alla vera domanda che è stata posta qui.
comfreak,

Si applica alla domanda operativa mentre esegue un chip Intel non xeon. La risposta è che non può controllare.
d hee,

Solo l'ultima frase della tua risposta non è corretta, poiché il chipset C232, ad esempio, è un "chipset desktop" e supporta ECC. A parte questo, la domanda è più generale, come in come controllare, come se non si sa se è supportato o meno.
comfreak
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.