Спустя 9 лет с момента формирования прошлой значительной ветки опубликован выпуск программы для тестирования оперативной памяти MemTest86+ 6.00. Программа не привязана к операционным системам и может запускаться напрямую из прошивки BIOS/UEFI или из загрузчика для проведения полной проверки оперативной памяти. В случае выявления проблем построенная в Memtest86+ карта сбойных участков памяти может использоваться в ядре Linux для исключения проблемных областей из работы. Код проекта распространяется под лицензией GPLv2...Подробнее: https://www.opennet.dev/opennews/art.shtml?num=57967
Внезапно...
SDRAM ещё в ходу?
Pentium 4 ещё в ходу
Любая память — SDRAM.
И HDD?
Не душните, пожалуйста. Я знаю, что есть и SRAM, и NAND, и NOR, но любая оперативная память сейчас SDRAM.
Так это ты душнишь, докопался до слов. Понятно же было, что чел имеет в виду
А чтобы совсем порвать мозг есть DDR NAND допустим. Конечно он не DRAM, но 2 транзакции за такт шины это ему делать не мешает.
DDR абсолютно перпендикулярен типу памяти. Более того, это даже не о памяти вообще, передача данных по фронту/спаду возможна где угодно.
SDRAM означает лишь Synchronous DRAM. Другой DRAM особо и не используется со времен чуть ли не второго пня, асинхронный был намного медленнее и довольно быстро вымер. Современный DRAM это тот или иной подвид SDRAM. DDR и детали частоты - другой аспект.
разрабам надо у Линуса надо попросить память. Вроде как у него нерабочая с ECC есть
> Вроде как у него нерабочая с ECC естьВ том-то и дело, что у него была без ECC! "Журналист" просто с английского не смог.
А в чём заключается работа этого инструмента с ECC-модулями памяти, как на картинке?
ECC-модули внезапно могут быть битыми, и можно например ECC и выключить, чтобы понять, какой модуль валит систему в стояк.
Фишка в том, что ЕСС сам сообщает где именно проблема.
Правильно ли я понимаю, что это не стандартизовано, и чтобы понять такое сообщение, нужно специально писать модуль под конкретные чипы?
Это всё теоретически, или этот инструмент поддерживает все существующие EDAC?
Не поддерживает, и вообще несмотря на "+" он безнадежно отстал от memtest86 без плюса. В котором поддержка и UEFI, и многих других вещей, заявленых тут, уже много лет как сделана, ну и множество других фич.
> А в чём заключается работа этого инструмента с ECC-модулями памяти, как на картинке?В их тестирировании с более-менее приличной нагрузкой на память, как обычно.
А как запустить его из УЕФИ? Вот, есть ноут, есть десктоп... что дальше делать? Или это чисто для coreboot?
кладешь на EFI раздел и прописываешь в NVRAM, efibootmgr в помощь
$ tail -6 /etc/grub.d/40_custom
menuentry 'UEFI Shell' {
insmod part_gpt
insmod fat
search --no-floppy --fs-uuid --set=root AABB-CCDD
chainloader ($root)/EFI/SHELLX64.efi
}
вместо шелла вставь ($root)/EFI/memtest86/BOOTX64.efi
А, так это с диска. Я и забыл что ЕФИ продолжается на харде. Думал, модуль в прошивку матери добавлять придётся.
Вряд ли где в чипе есть свободные 141Кб :).
При нынешних размерах SPI flash и подходах к разработке UEFI firmware — может и побольше найтись. Так что идея интересная.
В современных мамках бывает чуть не полчипа на цать метров свободно. Да, фирмварь сейчас жирная, почти операционка. Впрочем почему почти, там еще у интелей целый миникс для ME запизан. Все для (не)вашего удобства.
> Все для (не)вашего удобства.Да уж...
А на тех же PowerMac-ах тот же OpenFirmware штатно влезал в 1Мб и там была консоль, интерпретатор Forth без всяких следилок + небольшой GUI со значками...
Как и всё остальное, записываешь на любую флешку и запускаешь. Впрочем, теперь уже можно просто ventoy поставить на эту флешку, а затем кинуть на неё все нужные .iso, .img, .efi образы
Тот случай, когда зашел почитать про новое в Memtest, а в итоге ставлю Ventoy (с Memtest'ом, понятно).
Спасибо за наводку ))
Да, Ventoy божественный. Особенно в паре с SystemRescueCD (который тоже можно кастомизировать). Можно собрать даже что-то похожее на IP KVM и с минимальной болью научить это запускать любого хомячка на удалёнке
Тот случай, когда внезапно оказалось, что можно-таки сделать одну кнопку «сделать збс».
У Ventoy есть свинская привычка по дефолту всё найденное в одну кучу валить. Ну тут уж F3 спасает.
Самое простое - rEDInd-ом, он если видит в tools memtest86+.efi - может сам в меню добавить (..а, не, там конфиг надо ещё править чуть). Ну или положить файл в ESP, и из EFI Shell до него добратсья и стартануть. Или тем же Ventoy, на флешку скинуть и стартануть в UEFI-режиме, оно само всё запускабельно показывает кучей (efi\iso и пр.). Кстати, версию 6.0 я уже недели 2 как гоняю, вычислил 1 девайс с тупящим слотом, привёл девайс в рабочее состояние (путём замены 2х4 на 1х8 :) ).
Как-то сложно всё, мне dd хватило.
>rEDIndrEFInd
Да, вы правы. Как-то в последнее время часто текст набирается с перестановкой букв, которую не всегда замечаю.
Так же как другие ОС для uefi, наверное. Даже из консоли uefi если она есть.
Кстати, почему-то в ДЦ этот тест редко выявлял битые ЕЦЦ-модули. А вот когда на живой системе запускали memtester - ошибки начинали валиться.
потому что ecc ошибки детектятся и исправляются на уровне edac, и memtest'у соответственно не видны
Он и на обычной памяти не всегда всё ловит. Я больше месяца не мог понять что за фигня с компом, который постоянно то крашился, то зависал намертво, при том, что мемтест не находил ничего. Под конец поотключал всё, кроме клавиатуры, бутнулся с установосчной флэшки в шелл и запустил в бесконечном цикле архивацию данных из /dev/urandom. Вуяля - фризы и краши, пока не убрал один модуль. А мемтест писал, что всё нормально.
Охренеть! Спасибо за историю. Будем знать.
Для того, чтобы использовалась вся память, я сделал свап в файл на другой флэшке, архивировал xz с указанием размера словаря больше дефолтного, и в dd указал размер блока и число блоков так, чтобы bs*count было больше объёма оперативки.
Хитрó :)
Ни один тест не даёт 100 гарантии. У меня как-то никаким мемтестом ошибка не ловилась, а зафиксировал её только досовский QuickTech Pro.
Число проходов тоже важно, надо не меньше 3-х. На нижеуказанном компе 3 прохода всё было чисто, а на 4-м полезли грабли.
Да, все дело в температуре, если память не прогреть некоторые ошибки не проявляются.
Много смешно, но на самом деле ошибки далеко не с первого теста могут выявиться. Народ просто не понимает, что любая цифровая техника на самом деле АНАЛОГОВАЯ, со всеми вытекающими.
Некоторые тесты вовсе ошибки памяти не выявляют.
Как то давно был пациент, который не часто, но в неподходящие моменты вешался.
По симптомам, без всяких тестов, сразу возникло подозрение на ОЗУ. Оно было заменено на меньшее, и проблема исчезла.Но так это было давно, а комм был напичкан 6 планками ддр2 по 4Гб, которые тогда были редкими, стал их тестировать.
По тестам памяти, и всяким крутящимся бубликам проблемы вообще не были выявлены.
Поручил детям играть для тестов во все, вставляя по одной планке.
И они нашли "тест" на Saints Row3 комп с плохими модулями работал 1-3 минуты, и зависал. Забраковал аж 4 планки из шести, и с теми отобранными двумя проблем далее не было.Аналогичный тест повторил знакомый сисадмин, у которого подозрительного железа просто зааались.
Вывод. Если тесты в целом адекватны, но не выявили сбойные модули, то проблема в определенных поледовательностях в обращении к памяти. Что иногда бывает, когда портятся ячейки, не те, к которым не обращались.
Да есть такая фигня, тоже сталкивался. В основном битые модули начинают сразу палится, но бывали случаи аналогичные - спонтанные подвисания и краши, прогонишь мемтест все нормально вроде, но глюки продолжаются.
Только если оставить на ночь и прогнать пару десятков кругов начинают сыпаться ошибки.
Убрал модкуь памяти - повысил стабильность электропитания.
мемтест грейт эгейн. Наконец то.
Осталось прикрутить GUI - и будет MemtestOS.
Делать удобно и для людей не линукс вэй
Казалось бы, при чём тут вообще линукс. И да, оно удобно именно как есть.
+100500Кстати, у бубунт был раньше пакет с сабжем, и даже ставился в меню GRUB. Докинут ли новую версию? А то вон народ, не пользующийся EFI Shell, несколько в недоумении, как сабж заводить :).
Да не шибко оно по умолчанию нужно, а вручную GRUB отредактировать не сложно. Ну и если есть серьёзные подозрения на дохлую память, флэшечку для теста найти не проблема.
Однако же, в Шиндоус тестировщик памяти уже с семёрки встроен.
Во первых его часто можно найти как опцию загрузки на других дистрибувах. Особенно тех, которые хотят проблемы юзера решать.
Во вторых иногда и в составе штатной прошивки железки есть аналогичный функционал
> В случае выявления проблем построенная в Memtest86+ карта сбойных
> участков памяти может использоваться в ядре Linux для исключения
> проблемных областей при помощи опции memmap.Ядерный memtest=N (CONFIG_MEMTEST) делает это сам.
Там тестов маловато, насколько помню. Плюс, нужно пересобирать ядро. Но опция тоже нужная, особенно за пределами x86. Не так давно про неё узнал.
Когда знал-знал да и забыл:e16c:~> zcat /proc/config.gz| grep CONFIG_MEMTEST%)
CONFIG_MEMTEST=y
zgrep CONFIG_MEMTEST /proc/config.gz
> zgrep CONFIG_MEMTEST /proc/config.gzgzip-utils далеко не всегда прям под рукой -- так-то знаю, но всё равно спасибо :)
> ... тестов маловато,...Если именно микрухи DRAM глючат, то хватит 4 паттернов: 0000, 1111, 1010 и 0101
Большие тесты определят кривые FSB, latency, RAS/CAS ..., то есть надо лезть в
настройки BIOS и там искать проблемы.
> Если именно микрухи DRAM глючат, то хватит 4 паттернов: 0000, 1111, 1010 и 0101
> Большие тесты определят кривые FSB, latency, RAS/CAS ..., то есть надо лезть
> в настройки BIOS и там искать проблемы.Что-то этот тезис моей практикой не подтверждается.
Во-первых, после ECC эти 0000 могут превратиться в нечто весьма и весьма непохожее.
Во-вторых, бывало что проблема вылезает на own address test при обращении с определённого ядра, а в одноядерном режиме вообще не проявлялась.
В-третьих, микрухи умеют очень затейливо глючить, так что длинные bit-fade тесты тоже нужны.
Плюс, есть куча модулей с, по всей видимости, дефектами пайки, возникшими после перегрева серверной, там ошибки лезут далеко не сразу, только после определённого прогрева.В общем, как-то всё занятнее.
> Если именно микрухи DRAM глючат, то хватит 4 паттернов: 0000, 1111, 1010 и 0101Наивный.
UEFI версия без цифровой подписи. ШТОШ...
Ну так обеспечьте.
Ну вот жирные линухи могли бы и поддержать проект вместо пользования пассмарковского блоба в своих дистрибутивах.
> Ну вот жирные линухи могли бы и поддержать проект вместо пользования пассмарковского
> блоба в своих дистрибутивах.Не знаю за жирных, а от альтового сообщества патчи в memtest86+ есть.
PS: и http://bugzilla.altlinux.org/44133 закрыли -- только после меня ребята с grub наперевес там немножко понапереломали и недоперечинили (хотя немало и перечинили, конечно).
Починили бы уже проверки ecc памяти, выявить мемтестом на грани фантастики
Так в этом и смысл ECC. Когда память где-то начинает выходить из строя, то благодаря автокоррекции это не мешает работе, а даёт сначала предупреждение в лог. И тогда можно запланировать замену планки, и потестировать её с выключенным ECC.
К сожалению, это не называется починить, там именно что нужно реализовывать поддержку разных EDAC. Т.е. весьма объёмная задача, на которую разработчиков не хватает пока. Так что либо смотреть SEL (с помощью selview или ipmitool) после перезагрузки (если повезло и SMI handler работает как надо и успевает записать ошибки в лог), либо использовать проприетарный memtest.
Ещё как выявляет. Давеча на ссаном комплекте хуанан три модуля из четырёх отправились в утиль.
Кстати, на картинке не очень понятно, но если сабж засекает многопоточный\многоядерный проц - он по дефолту переключается в SMP-режим, как это у него именуется. И что характерно - работает на Интелопроцах нормально. Т.к. с более ранней БИОС-ной версией SMP_тест работал только на АМД-железе (всё, что я тыкал в SMP-варианте на интеле - рано или поздно вешалось, но работало в сингле).
Какая радость тестировать в режиме UP на SMP системе?
> Какая радость тестировать в режиме UP на SMP системе?Ну если оно вешается на некотором железе, а протестить надо..?
Старые версии могли вешаться из-за этого известного бага, тогда дело не в AMD/Intel, а в объёме памяти и количестве ядер:
https://web.archive.org/web/20191216000815/http://forum.cana...Хотя специфичные для железа/BIOS баги тоже имеют место, на HPE Gen9 в своё время наелся их. Хотя там больше похоже на баг фирмвари, но это не так просто доказать.
Кстати да, ECC на двухпроцессорной машине, если занят один банк или
неравное кол-во плашек, то с вероятностью 101% тест подвесит машину.Кто не в курсе, в системе с двумя и более сокетами, плашки оперативки
должны быть одного размера и кратны 4-м. Тогда будет полноценная NUMA c двумя нодами.
Што?
На двухузловой трёхканалке (Intel Exxxx/Xxxxx) надо минимум 6 модулей для полноценной нумы.
На двухузловой восьмиканалке (EPYC) - 16.
Общее правило - однородно загрузить все каналы на всех нодах.
ECC тут вообще абсолютно не при чём. Если сильно волнует bank contention, что вообще нетипичный случай - ставишь двухранговые модули или более.
Отлично, надеюсь его добавят в дебиан и убунту. А то приходилось приходилось проприетарную версию memtest86 от passmark использовать. Помимо того что она не требовала csm, так еще и гораздо быстрее работала.
Минус только в том, что её по понятным причинам не было из коробки - надо было на флешку писать или в esp класть и прописывать efimgr'ом...
В альте была давно -- в своё время договорились, у них получался подписанный бинарник, грузящийся нашим shim, а у нас -- работающий в EFI mode мемтест.
Это тот мемтест, который позволяет тайминги менять в реальном времени или отстойный?
Нет.
Нужная стюардесса.
Видимо ещё есть мазохисты которые жмотятся купить у самсунга память с ецц и берут вместо этого память со светодиодами и турборазогревом.
ECC в состоянии исправить лишь одиночные (один бит) случайные сбои. В случае дефектного чипа/переразгона/etc он абсолютно ничем не поможет.
в этом случае память сообщит о неработоспособности, а не начнет тебе рандомные данные пихать
еще был IBM Chipkill
Кому сообщит? Окошечко с ошибкой выдаст?
Они жмотятся купить кусок г-на от амуде и трахаться потом с багами и глюками всего, не только памяти.А в китайских x99 нет правильного edac и нет ecc. Модуль от своего сасунга ты туда сунуть можешь, но ошибки он и не увидит, и не исправит. Просто лишняя грелка припаяна.
У меня с амд проблем нет.
Загрузка UEFI Memtest86 с помощью systemd-boot
https://liranv.github.io/post/booting-memtest86-uefi/
Перебор. Из EFI Shell быстрее (если он встроенный есть, то ещё быстрее).