Wiki
Инфраструктура

ECC vs non-ECC память — в чём разница

ECC (Error-Correcting Code) память автоматически исправляет одиночные битовые ошибки. Обязательна для серверов, БД, финансов. Non-ECC — для десктопов.

ECC-память (Error-Correcting Code) — оперативная память с дополнительными битами чётности, которые позволяют обнаружить и исправить одиночные битовые ошибки "на лету". Не-ECC — обычная память без коррекции.

Почему это важно: cosmic rays, тепловая деградация и высокие температуры вызывают спонтанные bit-flip. Google в 2009 опубликовала данные: 8 % DIMM в год видят по крайней мере одну корректируемую ошибку. Без ECC такая ошибка тихо портит данные в БД, приводит к падению приложения или crash ядра.

У серверов всегда ECC (регламент Intel Xeon / AMD EPYC требует). У десктопных Ryzen / Core i5 ECC часто отсутствует. Хостинги, которые ставят десктопное железо ("gaming CPU в серверном корпусе"), экономят €40-80 на плашку памяти, но подвергают клиентские VPS риску тихой порчи данных.

У нас всё железо — Hetzner enterprise-серверы: AMD EPYC 9004 + DDR5 RDIMM ECC. Проверить на своём VPS: `dmidecode -t memory | grep -i ecc`.

Частые вопросы

Что делать, если у меня уже non-ECC VPS?
На VPS-уровне не различить — гипервизор скрывает. Спросите хостера напрямую или смотрите datasheet сервера.
ECC замедляет память?
На 2-3 %. Незначительно относительно risk-reward.