Qu'est-ce que la RAM ECC et pourquoi est-elle meilleure?

31

J'ai vu une discussion sur l'utilisation du ram ECC sur les serveurs. Pourquoi est-ce mieux?

Toby Allen
la source
2
Question répondue dans une autre question: serverfault.com/questions/5817/…
sh-beta
Existe-t-il des preuves que la mémoire ECC est nécessaire ou bénéfique à utiliser? Les avantages et le mécanisme d'action sont faciles à comprendre, mais je n'ai jamais entendu de preuves pour justifier son utilisation.
Drew Stephens
Et quelles sont les diverses conséquences possibles d'une telle erreur de mémoire (bit)? Par exemple, je viens de couper un serveur qui était en ligne pendant 5 ans sans interruption (avec RAM ECC), et dans l'ensemble tout s'est bien passé, je n'ai jamais eu de plaintes de clients qui y étaient hébergés ou qui ont déjà connu un problème majeur défaut ... Même chose avec mon expérience avec un ordinateur de bureau - un BSOD ici et là assez rarement, mais est-ce tout? :)
Denis Volovik
@Denis, je pense que si vous voulez que les gens répondent à votre question, vous devrez peut-être la poser comme une question distincte plutôt que comme un commentaire.
Toby Allen

Réponses:

28

La RAM ECC peut récupérer de petites erreurs dans les bits, en utilisant des bits de parité. Étant donné que les serveurs sont une ressource partagée où la disponibilité et la fiabilité sont importantes, la RAM ECC est généralement utilisée avec seulement une différence de prix modeste. La RAM ECC est également utilisée dans les postes de travail CAD / CAM où de petites erreurs de bits peuvent provoquer des erreurs de calcul qui deviennent des problèmes plus importants lorsqu'une conception passe en fabrication.

Waldo
la source
5
Une petite erreur dans un certain nombre n'importe où, y compris le financement d'une petite entreprise de quelqu'un peut être très petit ou très grand. Tout dépend de quel bit.
Zan Lynx
Ajoutez à cela le fait qu'une erreur erronée au mauvais endroit pourrait faire tomber plus d'une machine lorsque vous avez virtualisé pour consolider.
MikeyB
1
J'attends juste qu'une entreprise sans scrupules prétende que sa fraude comptable était en fait juste une petite erreur.
Eloff
29

Excellente étude dans le monde réel:

Erreurs DRAM à l'état sauvage: une étude de terrain à grande échelle (pdf)

Cet article fournit la première étude à grande échelle des erreurs de mémoire DRAM sur le terrain. Il est basé sur des données collectées auprès du parc de serveurs de Google sur une période de plus de deux ans, ce qui représente plusieurs millions de jours DIMM. La DRAM de notre étude couvre plusieurs fournisseurs, densités et technologies DRAM (DDR1, DDR2 et FBDIMM).

Le document aborde les questions suivantes: Dans quelle mesure les erreurs de mémoire sont-elles courantes dans la pratique? Quelles sont leurs propriétés statistiques? Comment sont-ils affectés par des facteurs externes, tels que la température et l'utilisation du système? Et comment varient-ils en fonction de facteurs spécifiques aux puces, tels que la densité des puces, la technologie de la mémoire et l'âge des modules DIMM?

Nous constatons que, dans de nombreux aspects, les erreurs DRAM sur le terrain se comportent très différemment que ce que l'on suppose généralement. Par exemple, nous observons des taux d'erreur DRAM qui sont des ordres de grandeur supérieurs à ceux rapportés précédemment, avec des taux FIT (défaillances dans le temps par milliard d'heures d'utilisation) de 25 000 à 70 000 par Mbit et plus de 8% des modules DIMM affectés par an. Nous fournissons des preuves solides que les erreurs de mémoire sont dominées par des erreurs matérielles, plutôt que des erreurs logicielles, sur lesquelles la plupart des travaux précédents se concentrent. Nous constatons que, parmi tous les facteurs qui influent sur le comportement d'erreur d'un module DIMM sur le terrain, la température a un effet étonnamment faible. Enfin, contrairement à ce que l'on craint généralement, nous n'observons aucune indication que les taux d'erreur par module DIMM augmentent avec les nouvelles générations de modules DIMM.

Il est intéressant de noter que la plupart des erreurs de mémoire étaient matérielles - les erreurs de mémoire matérielle sont irrécupérables, ce qui signifie que la mémoire doit être physiquement remplacée en tant qu'échec , tandis que les erreurs de mémoire logicielle peuvent être corrigées en écrasant la mémoire avec la valeur correcte. Cela m'indique que la valeur de l'ECC est assez limitée.

Il existe deux types d'erreurs qui peuvent généralement se produire dans un système de mémoire. La première est appelée une erreur répétable ou dure. Dans cette situation, un matériel est cassé et renvoie systématiquement des résultats incorrects. Un bit peut être bloqué pour qu'il renvoie toujours "0" par exemple, peu importe ce qui y est écrit. Les erreurs matérielles indiquent généralement des modules de mémoire desserrés, des puces soufflées, des défauts de la carte mère ou d'autres problèmes physiques. Ils sont relativement faciles à diagnostiquer et à corriger car ils sont cohérents et reproductibles.

On dirait que tous les serveurs de l'étude utilisaient ECC, donc nous ne pouvons pas connaître les taux d'erreur ECC vs non ECC ..

Cet article a étudié l'incidence et les caractéristiques des erreurs DRAM dans une grande flotte de serveurs de base. Notre étude est basée sur des données collectées sur plus de 2 ans et couvre les modules DIMM de plusieurs fournisseurs, générations, technologies et capacités. Tous les modules DIMM étaient équipés d'une logique de correction d'erreur (ECC) pour corriger au moins les erreurs sur un seul bit.

Jeff Atwood
la source
5
+1 beau rapport. Bien que je ne sais taux d'erreur non-ECC, j'estime que les taux d'erreur non-ECC sont à peu près les mêmes que les taux d'erreur ECC par Go. Les mêmes puces RAM utilisées sont utilisées à la fois dans les modules DIMM ECC et non-ECC (les modules DIMM ECC utilisent simplement 9/8 d'autant de puces - 72 bits de mémoire brute pour stocker un mot de données 64 bits, et 8/9 le taux d'erreur est à peu près le même taux d'erreur), et je ne vois aucune raison pour laquelle une puce RAM aurait un taux d'erreur significativement différent lorsqu'elle est placée sur un DIMM ECC par rapport à une puce non ECC.
David Cary
9

ECC a plusieurs avantages sur la parité. D'une part, il peut détecter et réparer les erreurs sur un seul bit et le faire sans avoir à arrêter l'ensemble du système. Les erreurs sur plusieurs bits renverront toujours une erreur de parité, mais les chances que cela se produise sont astronomiquement faibles pendant la durée de vie d'un PC, sauf si la mémoire elle-même est défectueuse. L'ECC est comme l'assurance automobile: elle vous couvre pour la majorité des choses qui peuvent mal tourner, mais elle ne peut pas empêcher un empilement de voitures multiples.

plus de détails ici: Mémoire ECC: un must pour les serveurs, pas pour les PC de bureau

TStamper
la source
1
Je ne suis pas d'accord avec l'article. Je pense que tout le monde devrait utiliser ECC. Je n'allais pas céder mais je voulais un nouveau Core I7 suffisamment pour finalement le faire. Cependant, je suis sûr que mes 6 Go de RAM détectent des erreurs partout.
Zan Lynx, le
4
@zan et ces erreurs dont vous êtes "sûr", quelles conséquences ont-elles?
Jeff Atwood
Ne devinez pas; les erreurs corrigibles devraient générer des MCE qui peuvent être enregistrés dans le système d'exploitation (journal système sous Windows, / var / log / mcelog sous Linux)
MikeyB
@JeffAtwood: Rien d'habitude, mais j'ai eu l'écran bleu occasionnel sans raison apparente. Sur les systèmes que j'ai qui faire ont ECC je verrai quelques erreurs de bit unique chaque mois.
Zan Lynx
@JeffAtwood: Et, comme tout le monde, j'en suis sûr, j'ai parfois dû réinstaller une application (Office. Visual Studio.) Car elle est apparemment devenue folle. Bogue d'application ou erreur ECC provoquant un fichier disque corrompu? Qui sait si vous n'avez pas d'ECC?
Zan Lynx
5

Pour simplifier les choses, citant Wikipédia :

Les interférences électriques ou magnétiques à l'intérieur d'un système informatique peuvent faire basculer spontanément un seul bit de DRAM vers l'état opposé. On pensait initialement que cela était principalement dû aux particules alpha émises par les contaminants dans les matériaux d'emballage des puces, mais la recherche [5] a montré que la majorité des erreurs ponctuelles ("douces") dans les puces DRAM se produisent en raison du rayonnement de fond
...
Ce problème peut être atténué en utilisant des modules DRAM qui incluent des bits de mémoire supplémentaires et des contrôleurs de mémoire qui exploitent ces bits. Ces bits supplémentaires sont utilisés pour enregistrer la parité ou pour utiliser un code correcteur d'erreurs

Chealion
la source