Як інтерпретувати статистику запису?


63

У мене є ноутбук, на який я підозрюю, що у нього несправний модуль пам'яті. Тому я завантажив Memtest86 + і нехай він працює.

Зауважте, що скріншот не є моїм фактичним, він надається memtest86 +

спогад

Як інтерпретувати цифри на екрані? Я дав їй пробіг близько чотирьох годин, і тепер я проходжу 7.

Тим більше, що робить

  • номер тесту
  • кількість помилок
  • кількість помилок ECC

вказувати? Які є здорові значення помилок пам'яті? У який момент я повинен розглянути можливість заміни пам'яті?


3
Ви хочете продовжувати використовувати пам’ять з помилками?
Даніель Бек

4
Тільки порада :). Не ігноруйте помилки в memtest. Лише одна невелика помилка оперативної пам'яті може порушити повну операційну систему і призвести до втрати даних.
Руфо Ель Магуфо

2
Як правило, якщо ви не бачите великих миготливих червоних областей, все добре :-)
Кол

5
Якщо помилки обмежені однією конкретною областю в пам'яті, а ви працюєте з Linux, ви можете сказати ядру ігнорувати ті області, як зазначено тут: gquigs.blogspot.com/2009/01/bad-memory-howto.html Якщо ви У вас працює Windows, помилки знаходяться не в послідовній області, або їх занадто багато, ви повинні отримати нову ОЗУ.
користувач55325

4
Крім того, якщо флеш-пам’ять починає виходити з ладу, можливо все більше та більше областей стає несправними. Пам'ять дешева порівняно з витратами на неодноразове пошкодження даних та проблеми з системою.
Здс

Відповіді:


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) і заснований на тесті спалення Роберта Редельмейєра. Пам'ять ініціалізується зі зсувними шаблонами, які інвертуються кожні 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, який виявив помилки. Він показує, який сектор / адреса вийшов з ладу.

Екран пам'яті з помилками

Перший стовпець ( Tst ) показує, який тест не вдався, число відповідає номеру тесту з уже згаданого списку. Другий колонці ( Pass ) показує , що , якщо тест був пройдений. У випадку прикладу тест 7 не має пропусків.

Третій стовпець ( Failing Address ) показує, яка саме частина пам'яті має помилки. Така частина має адресу, подібно до IP-адреси, яка є унікальною для цього фрагмента зберігання даних. Він показує, яка адреса не вдалася і наскільки великий фрагмент даних. (0,8 МБ у прикладі)

У четвертому ( хорошому ) та п’ятому ( поганому ) стовпцях відображаються записані дані та дані, які були отримані відповідно. Обидва стовпці повинні бути рівними у несправній пам'яті (очевидно).

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

У сьомому стовпці ( кількість ) відображається кількість послідовних помилок з однаковою адресою та бітними помилками.

Нарешті, останній стовпець сьомий ( Chan ) показує канал (якщо в системі використовується декілька каналів), на якому знаходиться смуга пам'яті.


Якщо він виявить помилки

Якщо MemTest виявляє будь-які помилки, найкращий спосіб визначення несправного модуля розкрито в цьому питанні щодо Super User та його прийнятій відповіді:

Скористайтеся процесом усунення - видаліть половину модулів і запустіть тест ще раз ...

Якщо відмов немає, то ви знаєте, що ці два модулі хороші, тому відкладіть їх і повторіть тест.

Якщо виникають збої, то скоротіть їх знову навпіл (до одного з чотирьох модулів пам'яті зараз), а потім повторіть тест.

Але, оскільки один не вдався до тесту, не вважайте, що інший не виходить з ладу (у вас можуть бути два несправні модулі пам'яті) - там, де ви виявили помилку з двома модулями пам'яті, тестуйте кожен з цих двох окремо після цього .

Важлива примітка: Завдяки таким функціям, як перемежування пам’яті та погана схема нумерації розеток модулів пам’яті у деяких постачальників материнських плат, може бути важко дізнатися, який модуль представлений певною адресою.


Дякую за пояснення! Чи можете ви відповісти, як дізнатися точний модуль оперативної пам’яті, що відповідає помилці? У мене відмінна адреса дорівнює 000c34e98dc - 3124.9MB. Чому такий великий розмір шматка? У мене на ПК є модулі 2x1Gb та 2x2Gb. Як знайти того, хто спричиняє збої?
Михайло

@Mikhail Я хотів би віднести вас до цього питання та його прийнятої відповіді: superuser.com/questions/253875/…
BloodPhilia

0 помилок не означає несправної оперативної пам’яті, у мене були випадки, коли RAM-паличка проходила memtest зі 100% балом і лише замінивши її, я міг вирішити складну проблему.
Той бразильський хлопець

3
Число в МБ після шістнадцяткової адреси не є розміром помилки, це місце помилки в МБ. Я майже впевнений, що розмір будь-якої однієї помилки завжди буде одним словом, оскільки це розмір того, що вона пише в пам'ять.
Jarryd

6

Кількість помилок

Під час проходження тестів, якщо пам'ять не вдасться до жодного з тестів, вона збільшить кількість помилок. Якщо я пригадую правильно, він рахує кількість адрес, які не вдалися до тесту.

Кількість помилок ECC

Пам'ять ECC - це особливий вид мікросхеми пам'яті, який використовується для запобігання пошкодження даних. У вашому ECC Errsстовпці підраховується кількість проблем, які виправлено ECC.

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

Номер тесту

Memtest робить різні види тестів на вашу пам'ять, які описані на веб-сайті Memtest86 . Як швидкий простий англійський переклад:

Тест 0: Тест адреси піших прогулянок

Memtest запише 00000001в першому місці пам'яті, 00000010у наступному тощо, повторюючи цю схему кожні 8 байт. Потім він зчитує пам'ять і переконує, що значення не змінилося. ( Джерело )

Тести 1 і 2: Тест власної адреси

Memtest записує кожне місце пам'яті зі своєю адресою та перевіряє, чи не змінилося значення.

Тест 1 є послідовним, а тест 2 - паралельним (тобто використовує паралельність).

Тест 3 та 4 рухомих тестів на інверсії

По суті, цей тест завантажує 0s в пам'ять, а потім

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

Мета полягає в тому, щоб спробувати протестувати кожен біт і його суміжні біти "всі можливі поєднання 0 і 1".

Тест 3 не використовує одночасність, а тест 4.

Тест 5: Перемінні інверсії, 8-бітний пат

Це робиться метод переміщення інверсії знову, але на цей раз з кроком 1s від тесту 0 у 8-бітових блоках.

Тест 6: Перемінні інверсії, випадкова картина

Memtest використовує випадкові числа замість усіх 0 або 1.

Тест 7: Переміщення блоку

Це одне задоволення. Він завантажує шаблони в пам'ять, переміщує їх по блоках 4mb і перевіряє їх.

Тест 8: Перемінна інверсія, 32-бітний пат

Те саме, що тест 5, але використовує 32-бітні блоки замість цього. Це насправді завантажує всі можливі 32-бітні значення у кожному місці.

Тест 9: Випадкові числа

Цей завантажує псевдовипадкові числа в пам'ять і перевіряє. Класна річ у генераторі псевдовипадкових чисел полягає в тому, що це не дуже випадково (якщо ви коли-небудь працювали printf("%d", rand());в програмі С без висіву і отримували о-так-випадковий 41, ви знаєте, що я маю на увазі). Отже, це перевіряється шляхом скидання сівалки випадкових чисел та запуску генератора ще раз.

Тест 10: Модуло-X

Кожні 20 локацій він записує шаблон (всі 0 або всі 1) і записує доповнення у всіх інших місцях, після чого перевіряє.

Тест 11: Тест на зникнення бітів

Цей завантажує оперативну пам’ять з усіма 1-ма секундами (і знову з усіма 0), чекає 5 хвилин і бачить, чи зміниться якесь із значень.


6

Тестовий номер: номер конкретного тесту, який перебуває на сьогоднішній день метеста. Їх дуже багато.

Кількість помилок: кількість виникаючих помилок пам'яті

Помилки ECC: Кількість помилок, виправлених ECC. У вашому чіпсеті / пам’яті немає ECC, тому це число не має значення.

Якщо у вашій пам'яті є кількість помилок вище 0, ви хочете її замінити.

РЕДАКТУВАННЯ: Тести - це різні шаблони, які запит записує в пам'ять. Він записує різні шаблони в пам'ять і зчитує їх назад, щоб перевірити на помилки, і він використовує різні шаблони, щоб мати змогу перевірити всі стани всіх бітів.

Підрахунок вказує кількість разів, коли результат, прочитаний назад в memtest, не відповідав тому, що він записав у пам'ять, що означає, що в купі пам'яті, що перевіряється, є помилка.

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.