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 ).
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+
.
Un altro modo popolare per scoprire, se ECC funziona, era emettere il dmidecode -t memory
comando e leggere Total Width
e Data Width
. I miei risultati sono stati 128 Bits
e 64 Bits
rispettivamente. 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 bits
il 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 dmidecode
strumento 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:
Dai commenti su Puget Systems, sembra anche che il ecc_check.c
programma 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+
:
La versione 4.20 non rileva nemmeno correttamente il mio processore ..
Qualche idea su come altro posso testare per ECC è molto apprezzata.