Mémoire ECC : à quoi elle sert vraiment sur un serveurECC memory: what it actually protects you from

Une cellule DRAM peut changer d'état sans raison logicielle : rayonnement, dérive électrique, vieillissement. Sur un poste bureautique, l'incident passe souvent inaperçu ou provoque un plantage isolé. Sur un serveur qui garde des données en cache pendant des semaines, la même erreur peut se propager silencieusement dans un fichier ou une base. C'est le problème que l'ECC adresse.A DRAM cell can flip state for reasons unrelated to software: radiation, electrical drift, ageing. On a desktop, the incident often goes unnoticed or causes an isolated crash. On a server holding data in cache for weeks, the same error can silently propagate into a file or a database. That is the problem ECC addresses.

Comment fonctionne la correctionHow the correction works

Un module ECC embarque des puces DRAM supplémentaires qui stockent un code de contrôle calculé sur chaque mot mémoire. À la lecture, le contrôleur recalcule ce code : s'il diffère, il localise et corrige une erreur portant sur un seul bit, de façon totalement transparente. Une erreur sur deux bits est détectée mais non corrigeable, et déclenche une interruption machine plutôt qu'une corruption silencieuse. C'est le comportement classique dit SECDED.An ECC module carries extra DRAM chips storing a check code computed over each memory word. On read, the controller recomputes that code: if it differs, it locates and corrects a single-bit error entirely transparently. A two-bit error is detected but not correctable, and raises a machine check rather than silent corruption. This is the classic SECDED behaviour.

  • Correction automatique et transparente des erreurs sur un bit
  • Détection des erreurs sur deux bits, sans correction possible
  • Les erreurs corrigées sont journalisées et remontées par l'IPMI
  • Un taux d'erreurs corrigées qui grimpe annonce une barrette à remplacer
  • Automatic, transparent correction of single-bit errors
  • Detection of two-bit errors, which cannot be corrected
  • Corrected errors are logged and reported through IPMI
  • A rising corrected-error rate signals a module about to fail

Le coût réel : prix, latence, compatibilitéThe real cost: price, latency, compatibility

L'ECC impose des puces supplémentaires et un contrôleur qui sait les exploiter, donc un processeur et une carte mère compatibles. La pénalité de performance est marginale, de l'ordre de quelques pourcents sur des accès mémoire intensifs, et invisible sur la plupart des charges. Le vrai frein est la compatibilité plateforme : toutes les gammes bureautiques ne l'activent pas, même quand la puce processeur en est techniquement capable.ECC requires extra chips and a controller able to use them, hence a compatible CPU and motherboard. The performance penalty is marginal, a few percent on memory-intensive access patterns, and invisible on most workloads. The real obstacle is platform compatibility: not every desktop-class product line enables it, even when the CPU silicon technically supports it.

  • Nécessite processeur, chipset et carte mère compatibles
  • Impact de performance faible, généralement non perceptible
  • Existe en unbuffered ECC pour les workstations d'entrée de gamme
  • Le mode registered ECC est la norme sur serveur
  • Requires a compatible CPU, chipset and motherboard
  • Low performance impact, generally not perceptible
  • Available as unbuffered ECC for entry-level workstations
  • Registered ECC is the server standard

Quand l'ECC devient non négociableWhen ECC becomes non-negotiable

Dès qu'une machine héberge des données dont la corruption ne serait pas immédiatement visible, l'ECC devient une assurance rationnelle : serveurs de fichiers, hyperviseurs, bases de données, stockage ZFS, sauvegarde, calcul long. À l'inverse, sur un poste de bureautique ou une machine de jeu, le rapport bénéfice-contrainte n'est pas évident. Pour une station de travail de production, la question se pose sérieusement dès que les rendus ou simulations durent des heures. Sur un parc existant, un inventaire des références installées permet de savoir ce qui est déjà protégé et ce qui mérite d'être complété.As soon as a machine holds data whose corruption would not be immediately visible, ECC becomes rational insurance: file servers, hypervisors, databases, ZFS storage, backup, long-running compute. Conversely, on an office desktop or a gaming machine the benefit-to-constraint ratio is unclear. For a production workstation the question is serious as soon as renders or simulations run for hours. On an existing fleet, an inventory of installed part numbers shows what is already protected and what deserves to be completed.

  • Indispensable sur hyperviseur, base de données et serveur de fichiers
  • Fortement recommandé avec ZFS et tout stockage à checksums
  • Utile en workstation dès que les calculs durent plusieurs heures
  • Facultatif en bureautique et en poste de développement léger
  • Essential on hypervisors, databases and file servers
  • Strongly recommended with ZFS and any checksummed storage
  • Useful on workstations once jobs run for hours
  • Optional for office use and light development machines

Repères de configurationConfiguration guidance

Erreur sur un bitSingle-bit errorDétectée et corrigée à la volée
Erreur sur deux bitsTwo-bit errorDétectée, non corrigée, remontée en machine check
Surcoût matérielHardware overheadPuces DRAM supplémentaires par module
Impact performancePerformance impactFaible, quelques pourcents au maximum
PrérequisPrerequisitesProcesseur, chipset et carte mère compatibles
Usage recommandéRecommended useServeurs, stockage, workstations de production
JournalisationLoggingCompteurs d'erreurs corrigées exposés par le BMC

Repères indicatifs : la configuration finale est validée avec vous selon vos contraintes réelles (charge, budget, environnement).Indicative guidance: the final configuration is validated with you against your real constraints (workload, budget, environment).

Questions fréquentesFrequently asked questions

ZFS fonctionne sans ECC, mais il vérifie l'intégrité des données par checksums calculés en mémoire. Si la RAM corrompt une donnée avant le calcul, ZFS écrira un checksum valide sur une donnée fausse. L'ECC ne rend pas ZFS obligatoire mais évite précisément ce scénario, d'où la recommandation constante.ZFS works without ECC, but it verifies data integrity through checksums computed in memory. If RAM corrupts data before that computation, ZFS writes a valid checksum over bad data. ECC does not make ZFS mandatory but prevents exactly this scenario, hence the standing recommendation.
Non. Selon la plateforme, la machine refusera de démarrer ou désactivera purement et simplement l'ECC pour l'ensemble des modules. Dans les deux cas vous perdez le bénéfice recherché. Uniformisez toujours le type, et de préférence la référence exacte, sur l'ensemble des canaux mémoire.No. Depending on the platform, the machine will either refuse to boot or simply disable ECC across all modules. Either way you lose the benefit you paid for. Always keep the type uniform, and ideally the exact part number, across all memory channels.
Les compteurs d'erreurs corrigées sont accessibles via le contrôleur de gestion (IPMI, iDRAC, iLO) et sous Linux via les outils EDAC ou rasdaemon. Une supervision qui alerte sur la progression du compteur permet de remplacer une barrette avant qu'elle ne provoque une erreur non corrigeable et un arrêt brutal.Corrected-error counters are available through the management controller (IPMI, iDRAC, iLO) and on Linux through EDAC tooling or rasdaemon. Monitoring that alerts on counter growth lets you replace a module before it produces an uncorrectable error and a hard stop.

Un besoin précis à chiffrer ?A specific need to quote?

Décrivez votre contexte : nous revenons sous 24 à 72 heures avec une approche et un devis.Tell us your context: we come back within 24-72 hours with an approach and a quote.