J'ai mis à jour ce post depuis que j'ai remplacé le processeur, mais le cœur de ma question (et malheureusement aussi les résultats) sont les mêmes.
J'ai construit ma première boîte FreeNAS et je voulais utiliser la RAM ECC car je veux stocker des données critiques. Parce que je suis sur un budget, je voulais opter pour la solution la plus abordable qui prendrait toujours en charge la RAM ECC.
Après avoir fait quelques recherches, j'ai découvert que j'avais besoin d'une carte mère, d'une mémoire et d'un processeur prenant en charge ECC. Ma carte mère de choix est le "Gigabyte X150M-Pro ECC" qui a le chipset C232, la DDR4 et une prise LGA1151.
J'ai également acheté un kit de deux modules DIMM fabriqués par Kingston avec le numéro de modèle "KVR21E15S8K2 / 8" ( fiche technique ). Gigabyte a publié une liste de modules de mémoire testés et mes modules semblent être pris en charge avec le fonctionnement ECC ( liste des modules pris en charge ).
Puisque je suis sur un budget, j'avais besoin d'un processeur Skylake abordable qui prend en charge ECC. Selon Intel, le Celeron G3900 prend en charge ECC, donc je suis allé avec celui-ci.
Après avoir construit l'ordinateur, je voulais vérifier que mon système fonctionne bien avec la mémoire ECC et être entré dans le BIOS de la carte mère. À partir de divers sites Internet, j'ai découvert que certaines cartes mères ont une section spéciale qui devrait indiquer si ECC fonctionne, mais ma carte mère ne semble pas avoir cela. J'ai vérifié tous les menus et je n'ai pas trouvé de section similaire.
Après avoir fait plus de recherches et trouvé un post sur l'échange de pile Unix et Linux qui n'a pas résolu mon problème. J'ai essayé le dernier memtest86+
qui, d'après ce que j'ai pu voir, ne montre même pas la valeur "ECC". J'ai essayé l'ancienne version 4.20 utilisée par les systèmes Puget qui montrait "ECC: off". Cependant, après avoir lu le post mentionné précédemment, je doute qu'il dise la vérité (c'est peut-être pourquoi la fonctionnalité a été supprimée?). Les deux versions n'ont pas non plus lu la vitesse et la latence correctes du DIMM, ce qui ajoute à mes doutes memtest86+
.
Une autre façon populaire de savoir, si ECC fonctionne, était d'émettre la dmidecode -t memory
commande et de lire le Total Width
et Data Width
. Mes résultats étaient 128 Bits
et 64 Bits
respectivement. Une partie de la sortie montrait des détails sur la matrice de mémoire qui avait une paire clé-valeur de Error Correction Type: Single-bit ECC
.
Je m'attendais 72 bits
à cela Total Width
, j'ai donc pensé que cela pourrait être lié au double canal et j'ai déplacé les modules de mémoire dans deux emplacements adjacents qui devraient empêcher le double canal, mais le résultat était le même. Voici la sortie complète de dmidecode -t memory
.
J'ai même essayé l'intéressant programme C publié par Puget Systems, mais le résultat a été 0
, n'indiquant aucun support ECC.
Maintenant, je commence à douter que les données sur le site Web d'Intel sont correctes et que mon processeur ne prend pas réellement en charge ECC. La mémoire et la carte mère sont spécifiquement marquées avec "ECC", donc je peux les exclure.
Est-il possible que la version du BIOS nécessite une mise à jour (il n'y en a actuellement aucune) pour activer l'ECC ou l'ECC fonctionne-t-il déjà et je n'ai tout simplement pas pu le vérifier? Ou mon choix de CPU est-il incorrect, si je veux exécuter la mémoire ECC et que le site Web d'Intel est faux / trompeur?
Si mon CPU s'avère être le mauvais choix, quel serait le prochain meilleur choix pour un "CPU ECC économique"?
MISE À JOUR: J'ai vu une nouvelle indication que mon système pourrait en fait fonctionner avec ECC activé et que l' dmidecode
outil rapporte simplement des données étranges. Sur le forum FreeNAS, l'utilisateur Dusan utilise du matériel de qualité serveur (SuperMicro MB, Xeon CPU, Kingston DIMM) et a une sortie similaire avec 128 Bits
. Mais il a écrit qu'il n'est pas sûr de lui-même, si cela fonctionne réellement.
MISE À JOUR 2: Comme yagmoth555 l'a mentionné dans sa réponse à cette question, il semble que ma carte mère ne supporte que ECC avec les processeurs Xeon, bien que je pensais que cette note était une relique des manuels précédents qui avaient été copiés. Je suppose que cela signifie que je dois examiner un processeur Xeon ..: - /
MISE À JOUR 3: J'ai acheté un Xeon E3-1220v5 maintenant qui, bien sûr, prend en charge ECC et devrait répondre aux exigences du manuel. J'ai exécuté à nouveau tous les tests pour vérifier la fonctionnalité ECC et les résultats sont fondamentalement identiques:
D'après les commentaires de Puget Systems, il semble également que le ecc_check.c
programme ne fonctionne pas sur les processeurs Xeon et Core i7 ..: - /
J'ai vérifié un memtest86+
peu plus cette fois et je suis assez certain qu'il ne prend pas du tout en charge la DDR4 ou le chipset C232, car il signale non seulement la mauvaise vitesse et le mauvais timing mais également la DDR3 au lieu de la DDR4 installée. Cependant, il a très bien détecté le processeur, mais j'ai toujours obtenu le même résultat final avec les deux versions de memtest86+
:
La version 4.20 ne détecte même pas correctement mon processeur.
Toutes les idées sur la façon dont je peux tester ECC sont très appréciées.