4

Согласно источникам, ошибки памяти - очень вероятное событие:

  • Некоторые говорят, что вероятность ошибки DRAM составляет 95% всего за 3 дня работы компьютера с 4 ГБ ОЗУ,
  • другие говорят, что 32% серверов испытывают, по крайней мере, одну ошибку в месяц, при этом 8% модулей DIMM ошибаются.

Вопреки этим ужасам, за более чем 10-летний опыт использования персональных компьютеров я не обнаружил ни одной ошибки памяти.

Признаюсь, я никогда не обращал особого внимания на эту тему. Тем не менее, я рискнул запустить многочасовой memtest86 пару раз и никогда не видел ошибки.

Некоторые из факторов, которые IMO должен усугубить проблемы с памятью:

  • Я строю свои компьютеры из самых "массовых" частей: материнских плат основного бюджета и почти дешевой памяти.
  • также я обычно максимально использую доступную технологию, например, во времена 32-битных ОС я использовал 4 ГБ ОЗУ, а с текущими процессорами для настольных ПК и более новыми 64-битными ОС я использую 32 ГБ ОЗУ.
  • Использование памяти умеренно велико, и множество виртуальных машин работают с небольшими и большими задачами 24/7/365.

Но, тем не менее, никаких проблем с памятью не обнаружено!

Как это?

2 ответа2

7

Blerg!

Черт, я попытался вставить это в комментарий, но форматирования было недостаточно, поэтому мне пришлось прибегнуть к ответу.

Статистика

Причина, по которой вы этого не видели, заключается в том, что вероятность того, что вы это видите, низкая, и, что более важно, вы не смотрели. Вероятность того, что вы заметили ошибку памяти, рассчитывается исходя из:

  • космический луч, падающий на Землю
  • луч падает на ваше местоположение
  • луч не мешает и не поглощается ничем другим
  • луч падает на ваш компьютер
  • луч попадает в вашу память
  • луч немного переворачивается в оперативной памяти
  • бит находится в блоке выделенной в данный момент памяти
  • используемая память либо:
    • протестировано программой типа memtest86+
      • протестировано в нужный момент, чтобы обнаружить ошибку (например, между микросекундами, когда программа записывает память, а затем считывает ее обратно и сравнивает)
    • выделяется блоку исполняемого кода, в этом случае также:
      • измененный бит значительно модифицирует код настолько, чтобы оказать существенное влияние на код
      • резкий эффект вызывает его крах
      • сбой программы на самом деле происходит сбой, а не просто исчезает
      • программа - это то, что вы замечаете и заботитесь о
      • вы не просто отбрасываете его как глючную программу

Конечно, это если мы говорим о переходных, прерывистых ошибках, таких как космические лучи, и помехах от другой электроники. Если модуль ОЗУ действительно неисправен, то в какой-то момент вы почти наверняка столкнетесь с проблемами (хотя даже тогда вполне возможно, что если вы никогда не используете всю физическую ОЗУ в любой момент времени, и дефект окажется небольшим и полностью локализованным). в части, которая никогда не используется вами, тогда вы можете не увидеть ошибку).

Вероятность кратковременной ошибки действительно может быть удивительно высокой, но вы, вероятно , видели ошибки памяти на протяжении многих лет и просто не замечали их из-за двух из перечисленных выше элементов списка: исполняемого кода и игнорирования ошибок.

Примеры

Если измененный бит попадает в часть данных, вы можете даже не заметить этого, потому что он может легко утонуть.

Например, если немного перевернулся в блоке текстовых данных, то вы можете заметить, что The end. превратился в Tje end. , но вместо того, чтобы заметить, что h был заменен на j потому что один бит перевернулся (не стесняйтесь, подтвердите, если хотите), вы, скорее всего, просто предположите, что ваш палец нажал не ту клавишу, потому что они оказались правы рядом и просто исправьте ошибку.

Хуже того, если перевернутый бит оказался частью изображения, аудио или видео файла, вы можете вообще ничего не заметить. Если он просто оказался в нужном месте, то это может привести к заметному изменению, например, к неправильной ширине или высоте изображения, или к легкому хлопающему звуку в песне, или к небольшому искажению в видео, которое вызывает кратковременную блочность. во время декодирования. Однако, учитывая большой размер медиа-файлов, вероятность того, что один бит окажется в нужном месте, крайне мала. Гораздо более вероятно, что он немного изменит цвет одного пикселя (например, темно-красный на немного темно-красный), и вы, вероятно, никогда не заметите. Это может изменить один пик формы волны песни, так что она имеет немного меньшую амплитуду, и вы, вероятно, никогда не заметите. Это может изменить один пиксель в одном кадре видео, и вы, вероятно, не могли бы заметить.

Предостережение

Страшный факт заключается в том, что такого рода необнаруженная, временная ошибка действительно может закрасться и остаться незамеченной. Вот почему я действительно беспокоюсь об использовании флэш-носителей для резервного копирования, потому что иногда они портятся, и если вы не заметите, то повреждение может проникнуть в вашу резервную копию и в конечном итоге навсегда. Более того, тестирование на наличие повреждений может быть затруднено, поскольку ожидаются изменения, поэтому вам придется вручную проверять каждое отдельное изменение, что для двоичных файлов будет кошмаром.

Увезти

Я полагаю, что положительной стороной, если она есть, является то, что, как я сказал в списке, изменение должно произойти, чтобы получить часть данных, которая действительно важна. Для большинства людей вероятность того, что он попадет в часть важных, незаменимых данных, которые должны быть сохранены, имеет тенденцию быть очень низкой.

Вы можете использовать такую программу, как memtest, чтобы проверить вашу оперативную память на наличие дефектов. Если это пройдет, то вам нужно только беспокоиться о «шансах один на миллиард» (я оставлю точный расчет кому-то другому, если это необходимо), когда часть важных данных будет повреждена, в противном случае - немного «Бит-гниль» здесь или там, как правило, мало что делает, кроме возможного сбоя программы и заставляет вас ругаться с разработчиками (хотя даже тогда, если он не сделает это снова…)

1

В то время как ранние персональные компьютеры, такие как IBM PC, включали бит четности для обнаружения ошибок памяти, большинство современных систем этого не делают. В результате ошибки не воспринимаются как ошибки памяти и иногда вызывают другие проблемы, такие как повреждение данных и странные сбои.

  • Память с четностью - обнаружение ошибок
  • Память с ECC - обнаруживать и исправлять ошибки
  • Память ни с чем - ошибки остаются незамеченными

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .