Как мне интерпретировать статистику запоминания?


63

У меня есть ноутбук, который, как я подозреваю, имеет неисправный модуль памяти. Поэтому я скачал Memtest86 + и позволил ему работать.

Обратите внимание, что скриншот не мой, он предоставлен memtest86 +

MemTest

Как мне интерпретировать числа на экране? Я дал ему поработать около четырех часов, и теперь я в седьмом проходе.

Особенно, что делает

  • номер теста
  • количество ошибок
  • количество ошибок ECC

показывают? Каковы нормальные значения для ошибок памяти? В какой момент я должен рассмотреть вопрос о замене памяти?


3
Вы хотите продолжать использовать память с ошибками?
Даниэль Бек

4
Только совет :). Не игнорируйте ошибки в memtest. Только одна маленькая ошибка в ОЗУ может привести к поломке операционной системы и потере данных.
Руфо Эль Магуфо

2
Вообще, если вы не видите больших мигающих красных областей, это все хорошо :-)
Полковник

5
Если ошибки ограничены одной конкретной областью в памяти, и вы работаете в Linux, вы можете указать ядру игнорировать эти области, как указано здесь: gquigs.blogspot.com/2009/01/bad-memory-howto.html Если вы вы работаете в Windows, ошибки не находятся в согласованной области, или их слишком много, вы должны получить новую оперативную память.
user55325

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

Ответы:


82

TL; DR

Сначала самое важное число: количество ошибок для исправной памяти должно быть 0 . Любое число выше 0 может указывать на поврежденные / неисправные сектора.


Объяснение экрана

     Memtest86+ v1.00      | Progress of the entire pass (test series)
CPU MODEL and clock speed  | Progress of individual, current test
Level 1 cache size & speed | Test type that is currently running
Level 2 cache size & speed | Part of the RAM (sector) that is being tested
RAM size and testing speed | Pattern that is being written to the sector
Information about the chipset that your mainboard uses
Information about your RAM set-up, clock speed, channel settings, etc.

WallTime   Cached  RsvdMem   MemMap   Cache  ECC  Test  Pass  Errors  ECC Errs
---------  ------  -------  --------  -----  ---  ----  ----  ------  --------
Elapsed    Amount  Amount    Mapping  on     on   Test  # of  # of    # of ECC
time       of RAM  of        used     or     or   type  pass  errors  errors
           cached  reserved           off    off        done  found   found
                   RAM, not
                   tested

Данные / Тестовое объяснение

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

Поскольку память - это не просто блокнот, в котором содержится информация, а расширенные функции, такие как кэширование, выполняется несколько различных тестов. Это то, что Test #указывает. MemTest выполняет ряд различных тестов, чтобы увидеть, если ошибки происходят.

Некоторые (упрощенные) тестовые примеры:

  • Тестовые сектора в следующем порядке: A, B, C, D, E, F. (Серийный)
  • Тестируйте сектора в следующем порядке: A, C, E, B, D, F. (Перемещение)
  • Заполните все сектора с рисунком: aaaaaaaa
  • Заполните все сектора случайным образом.

Более подробное описание всех тестов: https://www.memtest86.com/technical.htm#detailed

Тест 0 [Адресный тест, ходячие, без кеша]

Проверяет все биты адреса во всех банках памяти, используя шаблон адреса «ходячие».

Тест 1 [Адресный тест, собственный адрес, последовательный]

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

Тест 2 [Адресный тест, собственный адрес, Параллель]

То же, что и в тесте 1, но тестирование выполняется параллельно с использованием всех процессоров и с использованием перекрывающихся адресов.

Тест 3 [Перемещение инверсий, единиц и нулей, Последовательное]

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

Тест 4 [Перемещение инверсий, единиц и нулей, Параллель]

То же, что и в тесте 3, но тестирование выполняется параллельно с использованием всех процессоров.

Тест 5 [Движущиеся инверсии, 8-битный кусочек]

Это то же самое, что и в тесте 4, но используется 8-битный шаблон "ходящих" и нулей. Этот тест лучше обнаружит тонкие ошибки в «широких» чипах памяти.

Тест 6 [Движущиеся инверсии, случайная картина]

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

Тест 7 [Перемещение блока, 64 хода]

Этот тест нагружает память с помощью инструкций перемещения блока (movsl) и основан на тесте BurnBX Роберта Редельмайера. Память инициализируется с помощью сдвиговых шаблонов, которые инвертируются каждые 8 ​​байтов. Затем блоки памяти 4 Мб перемещаются с помощью инструкции movsl. После того, как ходы завершены, шаблоны данных проверяются. Поскольку данные проверяются только после завершения перемещения памяти, невозможно определить, где произошла ошибка. Указанные адреса предназначены только для тех мест, где был обнаружен плохой шаблон. Поскольку перемещения ограничены сегментом памяти 8 МБ, ошибочный адрес всегда будет менее 8 МБ от указанного адреса. Ошибки этого теста не используются для расчета шаблонов BadRAM.

Тест 8 [Движущиеся инверсии, 32-битный пат]

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

Тест 9 [Случайное число]

Этот тест записывает в память серию случайных чисел. Сбросом начального числа для случайного числа можно создать такую ​​же последовательность чисел для ссылки. Исходный шаблон проверяется, а затем дополняется и проверяется снова на следующем проходе. Однако, в отличие от тестовой записи движущихся инверсий, запись и проверка могут выполняться только в прямом направлении.

Тест 10 [по модулю 20, единицы и нули]

Использование алгоритма Modulo-X должно выявить ошибки, которые не обнаруживаются при перемещении инверсий из-за кеша и буферизации помех алгоритму. Как и в первом тесте, для шаблонов данных используются только единицы и нули.

Тест 11 [Тест битового затухания, 90 мин, 2 шаблона]

Тест битового затухания инициализирует всю память шаблоном, а затем спит в течение 5 минут. Затем память проверяется на предмет изменения битов памяти. Все единицы и все нулевые образцы используются.

Поскольку плохие сектора могут иногда работать и не работать в другой раз, я рекомендую позволить MemTest выполнить несколько проходов. Полный проход - законченная серия испытаний, которые прошли. (Серия тестов 1-11 выше) Чем больше проходов вы получите без ошибок, тем точнее будет ваш тест MemTest. Я обычно бегаю около 5 проходов, чтобы быть уверенным.

Число ошибок для исправной памяти должно быть 0. Любое число выше 0 может указывать на поврежденные / неисправные сектора.

Количество ошибок ECC должно учитываться только при ECCустановке на off. ECC означает исправление ошибок памяти кода и это механизм для обнаружения и исправления неправильных битов в состоянии памяти. Его можно немного сравнить с проверками четности, выполненными на RAID или оптических носителях. Эта технология довольно дорогая и, вероятно, будет встречаться только при настройке сервера. Счет ECC подсчитывает, сколько ошибок было исправлено механизмом ECC памяти. ECC не нужно вызывать для исправной оперативной памяти, поэтому число ошибок ECC выше 0 также может указывать на плохую память.


Объяснение ошибки

Пример Memtest, в котором обнаружены ошибки. Он показывает, какой сектор / адрес не удалось.

Экран Memtest с ошибками

Первый столбец ( Tst ) показывает, какой тест не пройден , номер соответствует номеру теста из списка, уже упомянутого выше. Второй колонке ( Pass ) показывает , что , если тест был пройден. В случае примера тест 7 не имеет проходов.

Третий столбец ( Failing Address ) показывает, какая именно часть памяти имеет ошибки. У такой части есть адрес, очень похожий на IP-адрес, который уникален для этой части хранилища данных. Он показывает, какой адрес потерпел неудачу и насколько велик блок данных (0.8MB в примере)

Четвертый ( Хороший ) и пятый ( Плохой ) столбцы показывают данные, которые были записаны и что было получено соответственно. Оба столбца должны быть одинаковыми в исправной памяти (очевидно).

Шестой столбец ( Err-Bits ) показывает положение точных битов, которые терпят неудачу.

Седьмой столбец ( Count ) показывает число последовательных ошибок с тем же адресом и неудовлетворительными битами.

Наконец, последний, столбец седьмой ( Чан ) показывает канал (если в системе используется несколько каналов), в котором находится полоса памяти.


Если он находит ошибки

Если MemTest обнаруживает какие-либо ошибки, лучший способ определить, какой модуль неисправен, описан в этом вопросе суперпользователя и принятом ответе:

Воспользуйтесь процессом исключения - удалите половину модулей и снова запустите тест ...

Если сбоев нет, то вы знаете, что эти два модуля хороши, поэтому отложите их в сторону и повторите тестирование.

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

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

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


Спасибо за объяснение! Не могли бы вы ответить, как узнать точный модуль памяти, соответствующий ошибке? У меня неверный адрес, равный 000c34e98dc - 3124.9MB. Почему такой большой размер куска? На моем компьютере установлены модули 2x1Gb и 2x2Gb. Как найти тот, который вызывает сбои?
Михаил

@Mikhail Я хотел бы отослать вас к этому вопросу и его принятому ответу: superuser.com/questions/253875/…
BloodPhilia

0 ошибок не означает неисправность ОЗУ, у меня были случаи, когда флешка проходила тестирование со счетом 100%, и только заменив его, я смог решить сложную проблему.
Этот бразильский парень

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

6

Количество ошибок

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

Количество ошибок ECC

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

(ECC медленный и дорогой, и в основном для критически важных систем, которые не могут потрудиться выгрузить оперативную память.)

Номер теста

Memtest выполняет различные проверки вашей памяти, которые описаны на веб-сайте Memtest86 . Так же, как быстрый простой английский перевод:

Тест 0: Адресный тест "Ходячих"

Memtest запишет 00000001в первую ячейку памяти, 00000010в следующую и т. Д., Повторяя этот шаблон каждые 8 ​​байт. Затем он читает память и следит за тем, чтобы значение не изменилось. ( Источник )

Тесты 1 и 2: Тест собственного адреса

Memtest записывает каждую ячейку памяти со своим собственным адресом и проверяет, что значение не изменилось.

Тест 1 является последовательным, а тест 2 - параллельным (то есть использует параллелизм).

Тест 3 и 4 Тест на подвижную инверсию

По сути, этот тест загружает 0 в память, а затем

  1. занимает каждое место в памяти (начиная с первого / самого нижнего места),
  2. и записывает инверсию шаблона (я считаю, что это побитовое НЕ, но я не смог найти никакой документации по этому вопросу).

Цель здесь состоит в том, чтобы попытаться проверить каждый бит и смежные биты «каждую возможную комбинацию 0 и 1».

Тест 3 не использует параллелизм, в то время как тест 4 использует.

Тест 5: Перемещение Инверсии, 8-битный Пэт

Это снова делает метод движущихся инверсий, но на этот раз с шагами 1 из теста 0 в 8-битных блоках.

Тест 6: Движущиеся Инверсии, Случайный Образец

Memtest использует случайные числа вместо всех 0 или пешеходных 1.

Тест 7: движение блока

Это весело. Он загружает шаблоны в память, перемещает их в блоки по 4 МБ и проверяет их.

Тест 8: Перемещение Инверсии, 32-битный Пат

То же, что тест 5, но вместо этого используются 32-битные блоки. Этот действительно загружает каждое возможное 32-битное значение в каждом месте.

Тест 9: Случайные числа

Этот загружает псевдослучайные числа в память и проверяет. Крутая вещь в генераторе псевдослучайных чисел состоит в том, что он не очень случайный (если вы когда-либо запускали printf("%d", rand());программу на C без заполнения и получили 41-й случайный случай, вы понимаете, о чем я). Таким образом, он проверяет, сбрасывая сеялку случайных чисел и снова запуская генератор.

Тест 10: по модулю X

Каждые 20 местоположений он записывает шаблон (все 0 или все 1) и записывает дополнение во все другие местоположения, а затем проверяет.

Тест 11: Тест битового замирания

Этот загружает ОЗУ со всеми 1 с (и снова со всеми 0), ждет 5 минут и видит, изменяется ли какое-либо из значений.


6

Номер теста: номер конкретного теста, который в данный момент выполняет memtest. Их очень много.

Количество ошибок: количество ошибок памяти

Ошибки ECC: количество ошибок, исправленных ECC. Ваш чипсет / память не имеет ECC, поэтому этот номер не имеет значения.

Если в вашей памяти есть ошибки, превышающие 0, вы захотите заменить их.

РЕДАКТИРОВАТЬ: Тесты - это разные шаблоны, которые memtest записывает в память. Он записывает различные шаблоны в память и считывает их обратно для проверки на наличие ошибок, а также использует различные шаблоны для проверки всех состояний всех битов.

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

ECC - это технология исправления ошибок, встроенная в микросхемы памяти для серверов и рабочих станций. Большинство декстопов не поддерживают модули памяти со встроенным ECC. Почти все серверы / рабочие станции поддерживают его и обычно требуют его. Количество ошибок, исправленных ECC, - это количество ошибок, которые чип ECC успешно исправил.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.