Содержание
- Проблемы с выделением больших объёмов памяти
- Тест ОЗУ (RAM): проверка оперативной памяти на ошибки
- Проверка ОЗУ (RAM) на ошибки
- Средство диагностики памяти Windows
- Тестирование оперативной памяти в Memtest 86+
- Memtest 86+
- Про версии программы Memtest 86+ (V5.01):
- Создание загрузочной флешки с Memtest86+
- Загрузка с флешки и запуск теста в Memtest 86+
- Что делать, если были найдены ошибки
- memtest under Windows
- mikeblas
- jimmyb
- jimmyb
- mikeblas
- jimmyb
- mikeblas
- mikeblas
- jimmyb
- mikeblas
- jimmyb
- mikeblas
- devman
- michalrz
- mikeblas
- michalrz
- mikeblas
- Windows 7 and single program RAM allocation
- lordstaimot
- Hawkeye22
- phil22
- lordstaimot
- lordstaimot
- Hawkeye22
- lordstaimot
- Hawkeye22
- Как проверить оперативную память на ошибки
- Содержание
- Содержание
- Диагностика средствами Windows
- Диагностика MemTest86
- Диагностика программой TestMem5 (tm5)
- Какой программой пользоваться?
- Как найти неисправный модуль?
- Что делать, если нашли неисправный модуль памяти?
Проблемы с выделением больших объёмов памяти
Что делаем:
Выделяю память самописным dummy вектором, который раздувается вдвое, когда нужно.
Что получаем:
Система сложная, минимальный код вычленять не пробовал, но падает где-то на очередной попытке раздуться с std::bad_alloc. Что характерно, памяти, вроде, достаточно: process explorer показывает
600Mb virtual memory, то есть даже если вся память процесса раздуется вдвое, то ещё места будет достаточно.
Вопрос:
что делать? куда копать?
//upd: что особенно удивительно, раз на раз не приходится и при детерменированной стратегии использования памяти приложение то падает, то нет.
NULL_PTR
ну я наталкивал везде free(malloc(10)); вроде не падало. если я побил память, почему тогда еггог не проявляется при меньших запросах памяти? вообще маловероятно, хотя и не исключено.
А если количество используемой памяти определять не эксплорером, а своей программой?
Можно же при каждом перевыделении писать в лог-файл.
andriano
> Можно же при каждом перевыделении писать в лог-файл.
не хочу
короче ещё поанализировал код. программа падает, когда использует памяти порядка 700Mb. особенность самопального вектора в том, что когда раздувается, он создаёт копию данных в два раза большего размера, копирует в них старые данные, старые данные удаляет. может, баг в том, в определённый момент в системе хранится не n, не 2 * n памяти a n + 2 * n, то есть 700 * 3
2,1Gb, то есть впритык? ну это было бы несколько странно, потому что векторов несколько и размеры у них примерно одинаковые, то есть все разом они занять в три раза больший размер вроде не могут
Suslik
Посмотри, что покажет VMMap.
Источник
Тест ОЗУ (RAM): проверка оперативной памяти на ошибки
Доброго времени суток.
Вообще, привести диагностику памяти можно разными путями:
В этой статье рассмотрю оба эти варианта (вообще, конечно, второй вариант более предпочтителен!).
Проверка ОЗУ (RAM) на ошибки
Средство диагностики памяти Windows
И тем не менее, как запустить проверку планок ОЗУ в Windows (актуально для Windows 7, 8, 10) :
mdsched — команда для проверки ОЗУ (Win+R)
Далее должно появиться окно, в котором вам предложат на выбор два варианта проверки:
Средство проверки памяти Windows
Если с диагностикой все «OK» — увидите сообщение, что тест памяти был успешно запланирован.
Тест памяти запланирован
После перезагрузки компьютера/ноутбука увидите окно, как на фото ниже. Будет выполнено 2 прохода, в нижней части окна показывается состояние операции. Если с вашей памятью все хорошо — то состояние будет в статусе «Неполадки пока не обнаружены».
Средство диагностики памяти Windows
Если будут найдены неполадки
Рекомендую прогнать еще раз утилитой Memtest 86+. Если ошибки подтвердятся и в этой утилите — то см. конец этой статьи, там привел несколько советов.
Тестирование оперативной памяти в Memtest 86+
Memtest 86+
Memtest 86+ — одна из лучших утилит, предназначенных для тестирования оперативной памяти. Утилита может запускаться с помощью собственного загрузчика, поэтому для нее операционная система, в принципе, не нужна.
Программа поддерживает современные многоядерные процессоры, большинство чипсетов материнских плат. Memtest 86+ доступна для скачивания на официальном сайте (ссылка выше), в виде нескольких версий. О них пару слов ниже.
Про версии программы Memtest 86+ (V5.01):
Создание загрузочной флешки с Memtest86+
Создание загрузочной флешки в Memtest 86+
Загрузка с флешки и запуск теста в Memtest 86+
Я воспользовался вызовом Boot Menu, указал с чего загружаться (USB-флешки) и нажал Enter (скрин ниже).
Загрузка с USB-флешки
Далее, если ваша флешка правильно записана, утилита Memtest 86+ автоматически запуститься и начнет тестировать оперативную память. От вас ничего не требуется нажимать. Красной стрелкой на фото ниже показан ход тестирования (сколько процентов проверено).
Тестирование в Memtest 86+ // запускается автоматически
Примечание! На всякий случай приведу клавиши управления (хотя они в большинстве случаев не нужны).
Esc – закрыть программу и перезагрузить ПК;
C – задание параметров в ручном режиме (для опытных пользователей);
F1 — Enhanced Fail Safe Mode (расширенная Fail Safe Mode).
F2 — Experimental SMT support up to 32 cores (экспериментальная SMT поддержка до 32 ядер).
При запуске производится анализ компонентов компьютера, затем начинается тестирование оперативной памяти.
Если тест не запускается в авто-режиме — запустите его при помои кнопок F1, либо F2.
Вообще, рекомендую оставить вот так тестировать ПК на несколько часов, чтобы утилита прогнала память несколько раз. Если с памятью все в порядке — вы должны увидеть внизу окна сообщение «Pass complete, no errors, press Esc to exit» (как на фото ниже).
Все хорошо с памятью // прошла тест
Если же в процессе тестирования будут найдены ошибки — вы увидите красные строки (это в любом случае не хорошо (как минимум) ).
С памятью есть проблемы.
Что делать, если были найдены ошибки
Довольно популярный вопрос, наряду с вопросами по тестированию памяти.
Далее проверьте сами планки: нет ли на них сколов, царапин, чистые ли они. Если есть признаки механического повреждения, то наверняка потребуется замена памяти на новую.
Чистка контактов памяти резинкой и кисточкой
Примечание. Процедуру нужно проводить крайне аккуратно, на чистой, сухой, ровной поверхности. Резинка лучше та, у которой две стороны: одна синяя, другая розовая. Тереть рекомендуется синей. В некоторых случаях, желтые контакты меняют цвет на более светлый.
После чистки памяти, вставьте ее вновь в слот и включите ПК (кстати, попробуйте вставить память в другие слоты, или поменять планки местами, если у вас все слоты заняты).
Далее проведите тестирование еще раз. В некоторых случаях, такая простая процедура, позволяет избавиться от ошибок, связанных с памятью, компьютер перестает зависать, перезагружаться и выдавать синий экран (тем самым, экономя ваши средства).
На этом у меня пока всё. Дополнения приветствуются.
Удачи и хороших тестов!
Статья откорректирована: 25.02.2019
Источник
memtest under Windows
mikeblas
HCI Designs memtest claims to test memory under Windows. How can it do so when Windows controls the physical-to-logical memory mapping? The program might test some memory, but any other program can cause memory demand, a logical-to-physical remapping, and invalidate the coverage the test believes it has.
What is it really doing?
jimmyb
They have this caveat on their website:
Unfortunately, it doesn’t provide much insight into how much coverage you can actually get out of the tool, practically speaking.
My recollection, having very occasionally run memory testers on non-Windows OSes, is that to increase coverage you are supposed to decrease the memory pressure as much as possible prior to running the tester. The tester process then requests a (large) amount of memory to be allocated to it, and proceeds to test it.
I suppose, if the OS doesn’t swap any memory to secondary storage, then there is a guarantee that you can test an amount of memory equal to what was allocated. Maybe I’m missing something here?
jimmyb
Somewhat off-topic: In the case of memory demand from other programs that causes swapping to storage, if we model the memory mapping algorithm as unconstrained random process, then the question of coverage becomes a rephrased version of the coupon collector problem, and we can put hard analytical bounds on the coverage probabilities.
This assumption may be totally unrealistic, as I’m totally unfamiliar with page replacement and virtual memory mapping algorithms. I get some small joy whenever I can restate questions as classic ones in probability theory.
mikeblas
I tried running their app, and it told me that «windows limits the amount of memory a single program can allocate», and it could only test 2047 megs at a time. My machine has 64 gigs. This program could test the memory it allocates, sure. But it has to allocate the memory. LOL!
An OS free boot-to-test arrangement means you’re running close to the metal, and can map your memory. When the OS is there, you’ve got no idea if that memory is physically contiguous or not. The 1.999 gigs tested with this program might be on one stick, or spread across all of your sticks, or in any pattern inbetween.
In neither case can you tell what byte of error was caused by which stick, but in the latter case I think you have a much higher chance of passing a test after only testing one stick when there are many other sticks in the system, and they could be bad.
I wonder if the issue at the core of this thread is caused by the in-OS testing doing this kind of mapping. Given the «recommend hci memtest over anything» response in that thread, I was really surprised to see it’s not doing anything special (AFAICT) to map or pin.
jimmyb
You could run 32 instances of the program in parallel. This is not a serious suggestion.
Not being able to pinpoint the failing memory module(s) seems like a major deficiency, particularly if there are a lot of them as might be the case for you.
I have used similar in-OS testers in OSX as a sanity test after installing new memory. I think I was able to allocate something like 13GB out of 16 without any swapping. If I actually suspected a memory failure then, as you suggest, I would switch to an OS-free at-boot tester.
mikeblas
Extremely [H]
mikeblas
It’s not my memory. I’m asking about this because if feels like the software is not really doing a good job of its advertised function, and on top of that people believe that it’s doing a great job of that function.
jimmyb
It seems that for Xeons you can set them up to count «memory ECC errors». My reading of this is that it’s not counting correctable errors.
I presume WHEA or any other monitoring software would leverage this mechanism to do ECC reporting.
In any case, ECC error detection can’t exhaustively guarantee that your memory is functioning correctly; I think you need to rely on an explicit write-read of each address if you want multiple sigma confidence that your memory is good.
mikeblas
jimmyb
Extremely [H]
I agree. The promises seem to be oversold.
I figured with wanting to test 64GB that you already suspected a problem, which is why I suggested monitoring particular memory events.
mikeblas
devman
Is memtest86+ 5.0.1 not recommended anymore?
I’ve got it hosted on my LAN via TFTP, if I think there is an issue with memory I just PXE boot it and let it run overnight.
michalrz
mikeblas
michalrz
mikeblas
I don’t think you’re coming across as ignorant.
To know why different tests produce different results for the same faults, we need to understand how the tests are different. Testing memory isn’t a standardized activity, so we can’t think of only «testing memory»; we have to concern ourselves with the details of what they’re doing. The differences are probably quite huge: memtest86 is very minimal. When Windows or Linux load, they do tons of initialization, run drivers, and so on. They also have schedulers, which move the testing software from core to core or even socket to socket; but that also go idle every once in a while, and run off to service other things. They turn on modes that memtest86 probably doesn’t support: turbo, throttling, and so on. We do don’t know what read/write pattern, and what specific bit pattern, each program uses. (HCI doesn’t say, but I think Memtest documents it and lets the user pick and choose, IIRC.)
We also don’t know what «instability issues» were in the environment you were testing, or if the different results are specific to your situation(s), or they apply to all situations.
Figuring out the differences is (to me) academically interesting. Without knowing the specific differences between the tests, and understanding common failure modes, it’s hard to make any complete claim about which might be «better». One difference we do know is that one runs under Windows and only allows testing 2047 megabytes at a time; while the other runs bare metal and tests the whole address space.
Источник
Windows 7 and single program RAM allocation
lordstaimot
Honorable
I am running Windows 7 64 bit. When running memtest to check the integrity of the 16GB of RAM I’ve just installed, it says:
«your version of windows limits the amount of contiguous ram a single program can allocate. To test all your RAM, run more than one copy of memtest at a time.»
This is a gaming rig, so does that mean that no matter how much RAM I have installed a game can only perform so well because of an artificial OS limit?
Is there a way to bypass this limit?
Thanks for any insight you might have.
Hawkeye22
Glorious
Something doesn’t sound right. Memtest boots off a CD or USB drive. It is not run from within windows. When run properly, windows doesn’t even come into play. Memtest doesn’t care what OS you use. If you are running the windows based version of memtest, then yes you will get this error. 32 bit programs run in windows can only use 2 gig of application memory. 64 bit programs can utilize all the ram.
Anyhow, if you aren’t booting directly into memtest, then you’re probably using the wrong version.
phil22
Dignified
lordstaimot
Honorable
lordstaimot
Honorable
Hawkeye22
Glorious
lordstaimot
Honorable
We’re missing the point here. Memtest can only test around 2 gigs at a time before giving that error message. And the reason for this, according to their error message, is that Windows 7 limits the amount of RAM a single program can allocate at any given time.
So my real question becomes: Is that true? Does Windows 7 limit the amount of RAM a single program can allocate? And if so, doesn’t this mean my high-end gaming rig is going to cap the amount of RAM a single game can utilize, therefore rendering my 16 GB of RAM pointless if all I’m using it for is a single game and no other programs are running?
And if «yes» to all of the above, is there a way to bypass this artificial limit? I know I’m biting off a big chunk here, but any insight would any least point me a direction instead of riding out blind.
Hawkeye22
Glorious
Something doesn’t sound right. Memtest boots off a CD or USB drive. It is not run from within windows. When run properly, windows doesn’t even come into play. Memtest doesn’t care what OS you use. If you are running the windows based version of memtest, then yes you will get this error. 32 bit programs run in windows can only use 2 gig of application memory. 64 bit programs can utilize all the ram.
Anyhow, if you aren’t booting directly into memtest, then you’re probably using the wrong version.
Источник
Как проверить оперативную память на ошибки
Содержание
Содержание
Во время работы компьютера в оперативной памяти содержатся данные ОС, запущенных программ, а также входные, выходные и промежуточные данные, обрабатываемые процессором. Если с оперативной памятью проблемы — плохо работать будет все. Как понять, что оперативную память пора лечить или менять и проблемы именно в ней? Разбираемся.
Причин ошибок в работе оперативной памяти очень много — от неправильно заданных параметров материнской платой (настройки по умолчанию не панацея) до брака, механических дефектов памяти и разъема материнской платы, а также проблем с контроллером памяти процессора.
Одним из первых признаков неполадок в работе оперативной памяти являются синие экраны смерти (BSOD) и сопутствующие симптомы: подтормаживание, зависание, вылеты приложений с различными ошибками и просто так.
Перечисленные неполадки в работе компьютера относят в основном к симптомам общего характера. При появлении таких неявных признаков неисправности лучше всего начать диагностику компьютера именно с оперативной памяти.
Для диагностики оперативной памяти есть специальные программные средства, о которых и будет дальше идти речь.
Диагностика средствами Windows
Чтобы запустить средство диагностики памяти Windows, откройте меню «Пуск», введите «Диагностика памяти Windows» и нажмите клавишу Enter.
Вы также можете воспользоваться комбинацией клавиш Windows + R и в появившемся диалоговом окне ввести команду mdsched.exe и нажать клавишу Enter.
На выбор есть два варианта: сейчас перезагрузить компьютер и начать проверку или выполнить проверку во время следующего включения компьютера.
Как только компьютер перезагрузится, появится экран средства диагностики памяти Windows.
Ничего трогать не нужно — по завершении теста компьютер еще раз перезагрузится сам и включится в обычном режиме. Сидеть и следить за ходом проверки тоже не стоит — всю информацию с результатами проверки можно будет потом посмотреть в журнале событий операционной системы.
Результат проверки должен появиться при включении компьютера, но это происходит далеко не всегда.
Чтобы узнать результаты проверки через журнал событий. В меню поиск забиваем «просмотр событий» или можно снова воспользоваться комбинацией клавиш Windows + R и ввести команду eventvwr.msc и Enter.
Открываем журналы «Windows – Система – найти – Диагностика памяти».
Диагностика MemTest86
Данный способ несколько сложнее, так как нужно создать загрузочную флешку, но у него есть и свои положительные стороны. Он выполняет более широкий набор тестов и может найти проблемы, которые не обнаружил встроенный тест Windows.
По началу процесс создания загрузочной флешки может напугать неопытного пользователя, но здесь нет ничего сложно. Скачиваем архив, извлекаем содержимое, вставляем флешку в компьютер и запускаем файл imageUSB.exe.
Выбираем наш USB-накопитель и нажимаем Write, процесс занимает считанные минуты. Все, образ готов.
Чтобы загрузиться с созданного ранее флеш-накопителя, необходимо настроить приоритет загрузки устройств в BIOS материнской платы или, что значительно проще, воспользоваться функцией Boot Menu.
В зависимости от производителя материнской платы, клавиша для вызова функции Boot Menu может меняться, обычно это F2, Del, Esc, F12.
Соответствующую клавишу нужно нажимать сразу после включения компьютера или в момент перезагрузки компьютера, как только потух монитор (нажимать можно несколько раз, чтобы не пропустить нужный момент).
Проверка запустится автоматически, ничего трогать не нужно.
Процедура проверки будет выполняться циклически (Pass) до тех пор, пока вы не решите остановить его. Информация об ошибках будет отображаться в нижней части экрана. Когда решите закончите, нужно просто нажать клавишу Esc, чтобы выйти и перезагрузить компьютер. По-хорошему, нужно пройти минимум 5–10 циклов проверки — чем больше, чем лучше.
Диагностика программой TestMem5 (tm5)
TestMem5 — программа тестирования оперативной памяти, абсолютно бесплатная, скачать можно по ссылке.
Эта программа построена по несколько другому принципу, чем предыдущие. А именно — она настраиваемая. Сами тесты имеют довольно гибкую структуру с большим количеством настроек.
Настройкой собственной конфигурации для тестирования заниматься необязательно, есть уже несколько готовых конфигураций настроек от разных авторов. Наибольшей популярностью пользуются конфигурации от 1usmus v3 и anta777 (Экстрим – Тяжелый – Суперлайт). Процесс установки конфигураций очень прост: скачиваете нужный и помещаете в папку с программой или можно добавить через «Настроить и выйти».
Важно : Запускать tm5.exe нужно в режиме администратора ( с правами администратора).
Какой программой пользоваться?
У каждой из программа есть свои сильные и слабые стороны.
Диагностика средствами Windows — это наиболее простой способ, который уже встроен в операционную систему, его остается только запустить. Не способен найти сложные ошибки, тест короткий.
MemTest86 — старая и авторитетная программа, есть небольшие сложности с запуском. Можно использовать без установленной операционной системы.
TestMem5 — прост в использовании, проверка происходит в среде Windows, что наиболее приближено к реальным условиям использования, а не в среде DOS как Memtest86. А наличие различных конфигураций по интенсивности и времени проверки делает ее наилучшим решением для тестирования оперативной памяти как по дефолту, так и во время разгона.
Как найти неисправный модуль?
Принцип поиска неисправного модуля довольно прост:
1) Проверить правильность установки разъемов при наличии двух модулей.
2) Продуть от пыли разъемы и протереть контакты.
3) Сбросить все настройки Bios на дефолтные.
4) Проверить планки памяти вместе и по отдельности, меняя разъемы.
5) Проверить планки памяти на другой материнской плате у друга.
Что делать, если нашли неисправный модуль памяти?
Если все перечисленное не помогает избавиться от ошибок, стоит обратиться в гарантийный отдел, если товар еще на гарантии. Платный ремонт оперативной памяти обычно нецелесообразен ввиду не очень высокой цены продукта. Проще пойти и купить новый модуль на гарантии, чем заниматься восстановлением неисправного.
Сама по себе оперативная память сейчас очень редко выходит из строя и с легкостью переживает смену остальных компонентов системы. Чаще всего все ошибки, связанные с работой оперативной памяти, возникают по вине самого пользователя и из-за некорректных настроек в Bios материнской платы, а также при использовании совершенно разных планок памяти и во время разгона.
Встроенную в винду софтину вообще категорически не рекомендую.
Для выявления брака MemTest86 на загрузочной флешке наше все.
как ни странно набор тестов и там и там одинаковый, но вот то что виндовый находит только откровенный брак эт прям мистика
Сейчас рулит MemTest 86+, я его во все дистрибутивы ставлю в стартовое меню. Ну у меня не виндоуз. А во времена DOS и 386 рулил qmt, Qualitas Memory Test, и когда у меня было 32Мб. на SIMM 30, то он не в Fast Test а в Full Test гонял единички инули по кажлой ячейке а потом ещё заполнял от 0H до FH, в общем то 32Мб. тестились часа три- четыре на 386DX40 🙂 Зато надёжный в доску 🙂 В коллекции есть.
С сайта memtest86+:
«После долгого перерыва без обновлений и после многочисленных запросов я начал компилировать множество ветвей кода, чтобы снова выпускать публичные сборки!
Вот Memtest86 + 5.31b, со многими исправлениями ошибок в основных функциях. Эта сборка еще не готова к производству, так как ей не хватает некоторых отзывов от бета-тестеров. Дополнительные функции и обновленный код обнаружения последуют в ближайшее время, как только у меня появится доступ к моей лаборатории со всеми эталонными тестовыми платформами. В настоящее время он недоступен из-за локдауна COVID19.»
Прикладываю скриншот теста на компьютере, который больше 10 лет стабильно работает.
Другие тесты ошибок не видят, в том числе memtest и memtest86+ без SMT-режима.
Источник
-
- Jan 27, 2013
-
- 9
-
- 0
-
- 10,510
- 0
-
#1
«your version of windows limits the amount of contiguous ram a single program can allocate. To test all your RAM, run more than one copy of memtest at a time.»
Is this true?
This is a gaming rig, so does that mean that no matter how much RAM I have installed a game can only perform so well because of an artificial OS limit?
Is there a way to bypass this limit?
Thanks for any insight you might have.
-
- Feb 10, 2006
-
- 11,445
-
- 1
-
- 47,965
- 1,070
-
#7
Anyhow, if you aren’t booting directly into memtest, then you’re probably using the wrong version.
http://www.memtest.org/
-
- Apr 26, 2012
-
- 3,850
-
- 0
-
- 15,460
- 248
-
#2
-
- Jan 27, 2013
-
- 9
-
- 0
-
- 10,510
- 0
-
#3
-
- Jan 27, 2013
-
- 9
-
- 0
-
- 10,510
- 0
-
#4
-
- Feb 10, 2006
-
- 11,445
-
- 1
-
- 47,965
- 1,070
-
#5
-
- Jan 27, 2013
-
- 9
-
- 0
-
- 10,510
- 0
-
#6
So my real question becomes: Is that true? Does Windows 7 limit the amount of RAM a single program can allocate? And if so, doesn’t this mean my high-end gaming rig is going to cap the amount of RAM a single game can utilize, therefore rendering my 16 GB of RAM pointless if all I’m using it for is a single game and no other programs are running?
And if «yes» to all of the above, is there a way to bypass this artificial limit? I know I’m biting off a big chunk here, but any insight would any least point me a direction instead of riding out blind.
-
- Feb 10, 2006
-
- 11,445
-
- 1
-
- 47,965
- 1,070
-
#7
Anyhow, if you aren’t booting directly into memtest, then you’re probably using the wrong version.
http://www.memtest.org/
-
- Jan 27, 2013
-
- 9
-
- 0
-
- 10,510
- 0
-
#8
-
- Jan 27, 2013
-
- 9
-
- 0
-
- 10,510
- 0
-
#9
- Advertising
- Cookies Policies
- Privacy
- Term & Conditions
- Topics
Содержание
- Проблемы с выделением больших объёмов памяти
- Проблемы с выделением больших объёмов памяти
- Отзывы о программе MemTest
- What is the RAM Limit in Windows 10 in 2018?
- RAM Limit in Windows 10, Windows 8.1
- Memory Limits for Windows and Windows Server Releases
- Memory and Address Space Limits
- Physical Memory Limits: Windows 10
- Physical Memory Limits: Windows Server 2016
- Physical Memory Limits: Windows 8
- Physical Memory Limits: Windows Server 2012
- Physical Memory Limits: Windows 7
- Physical Memory Limits: Windows Server 2008 R2
- Physical Memory Limits: Windows Server 2008
- Physical Memory Limits: Windows Vista
- Physical Memory Limits: Windows Home Server
- Physical Memory Limits: Windows Server 2003 R2
- Physical Memory Limits: Windows Server 2003 with Service Pack 2 (SP2)
- Physical Memory Limits: Windows Server 2003 with Service Pack 1 (SP1)
- Physical Memory Limits: Windows Server 2003
- Physical Memory Limits: Windows XP
- Physical Memory Limits: Windows Embedded
- How graphics cards and other devices affect memory limits
Проблемы с выделением больших объёмов памяти
Что делаем:
Выделяю память самописным dummy вектором, который раздувается вдвое, когда нужно.
Что получаем:
Система сложная, минимальный код вычленять не пробовал, но падает где-то на очередной попытке раздуться с std::bad_alloc. Что характерно, памяти, вроде, достаточно: process explorer показывает
600Mb virtual memory, то есть даже если вся память процесса раздуется вдвое, то ещё места будет достаточно.
Вопрос:
что делать? куда копать?
//upd: что особенно удивительно, раз на раз не приходится и при детерменированной стратегии использования памяти приложение то падает, то нет.
NULL_PTR
ну я наталкивал везде free(malloc(10)); вроде не падало. если я побил память, почему тогда еггог не проявляется при меньших запросах памяти? вообще маловероятно, хотя и не исключено.
А если количество используемой памяти определять не эксплорером, а своей программой?
Можно же при каждом перевыделении писать в лог-файл.
andriano
> Можно же при каждом перевыделении писать в лог-файл.
не хочу
короче ещё поанализировал код. программа падает, когда использует памяти порядка 700Mb. особенность самопального вектора в том, что когда раздувается, он создаёт копию данных в два раза большего размера, копирует в них старые данные, старые данные удаляет. может, баг в том, в определённый момент в системе хранится не n, не 2 * n памяти a n + 2 * n, то есть 700 * 3
2,1Gb, то есть впритык? ну это было бы несколько странно, потому что векторов несколько и размеры у них примерно одинаковые, то есть все разом они занять в три раза больший размер вроде не могут
Suslik
Посмотри, что покажет VMMap.
Проблемы с выделением больших объёмов памяти
Что делаем:
Выделяю память самописным dummy вектором, который раздувается вдвое, когда нужно.
Что получаем:
Система сложная, минимальный код вычленять не пробовал, но падает где-то на очередной попытке раздуться с std::bad_alloc. Что характерно, памяти, вроде, достаточно: process explorer показывает
600Mb virtual memory, то есть даже если вся память процесса раздуется вдвое, то ещё места будет достаточно.
Вопрос:
что делать? куда копать?
//upd: что особенно удивительно, раз на раз не приходится и при детерменированной стратегии использования памяти приложение то падает, то нет.
NULL_PTR
ну я наталкивал везде free(malloc(10)); вроде не падало. если я побил память, почему тогда еггог не проявляется при меньших запросах памяти? вообще маловероятно, хотя и не исключено.
А если количество используемой памяти определять не эксплорером, а своей программой?
Можно же при каждом перевыделении писать в лог-файл.
andriano
> Можно же при каждом перевыделении писать в лог-файл.
не хочу
короче ещё поанализировал код. программа падает, когда использует памяти порядка 700Mb. особенность самопального вектора в том, что когда раздувается, он создаёт копию данных в два раза большего размера, копирует в них старые данные, старые данные удаляет. может, баг в том, в определённый момент в системе хранится не n, не 2 * n памяти a n + 2 * n, то есть 700 * 3
2,1Gb, то есть впритык? ну это было бы несколько странно, потому что векторов несколько и размеры у них примерно одинаковые, то есть все разом они занять в три раза больший размер вроде не могут
Suslik
Посмотри, что покажет VMMap.
Отзывы о программе MemTest
Загрузок всего | 460 063 |
Загрузок за сегодня | 31 |
Кол-во комментариев | 20 |
Подписавшихся на новости о программе | 12 (подписаться) |
Anjey про MemTest 7.0 [30-05-2020]
Ну во первых это не установочный файл, то бишь скачиваем не программу а .
во вторых — WINRAR при открытии файла пишет следующее:
«WinRAR не бесплатная программа. По окончании 40 испытательного периода Вы должны купить лицензию .
И это называется бесплатное скачивание?
3 | 32 | Ответить
West в ответ Anjey про MemTest 7.0 [30-05-2020]
То, что ты пользуешься условно-бесплатным архиватором это твои проблемы!! При чем тут вообще WinRar до MemTest.
Я тебе по большому секрету скажу, что архивы можно открыть не только винраром. Есть бесплатный 7-zip.
И да, это называется бесплатным скачиванием.
Ты с какого дерева слез?
31 | 3 | Ответить
Gvidas про MemTest 6.3 [26-09-2019]
Admin в ответ Gvidas про MemTest 6.3 [25-11-2019]
Проверено — вирусов НЕТ!
https://www.virustotal.com/gui/url/cc0aada804f44e46274732950c8341d4a36ea66e4a3f8d9133c86e1ab0e272a8/detection
5 | 7 | Ответить
sаN4es про MemTest 6.0 [17-04-2019]
Nopost про MemTest 6.0 [22-01-2018]
Windows limits the amount of contigous RAM MemTests can allocate to betwen 2 and 3,5GB.
To test all your RAM, run more than one copy of MemTest simultaneously and set each copy to test a portion of available RAM. Running more than one copy of MemTest does not lower the qualyty of the test (and can even improve it if you have multiple cores or CPUs)
NOTE: this process in automated in MemTest Pro
Машинный перевод:
Windows ограничивает количество смежных RAM MemTests, которые можно распределить между 2 и 3,5 ГБ.
Чтобы протестировать всю оперативную память, одновременно запускайте несколько экземпляров MemTest и установите каждую копию для проверки части доступной оперативной памяти. Запуск более чем одной копии MemTest не снижает квалификацию теста (и может даже улучшить его, если у вас несколько ядер или процессоров)
ПРИМЕЧАНИЕ. Этот процесс в автоматизированном виде в MemTest Pro
И ещё:
.If you find this free version useful, please considering purchasing the PRO [$5] or Deluxe [$14] versions, which add additional features.
Если вы найдете эту бесплатную версию полезной, подумайте о покупке версий PRO [$ 5] или Deluxe [$ 14], которые добавят дополнительные функции.
10 | 38 | Ответить
Знаток про MemTest 6.0 [18-11-2017]
Я хочу предупредить,эту программу «MemTest6.0» не путайте с программой «Memtest86 7.4» (которая работает до загрузки системы)от PassMark SoftWare http://www.softportal.com/software-30821-memtest86.html (снимки экрана от версии 4.1, образ это программы версии 4.1 скачал с другого сайта, энтеркомпьютер)
8 | 17 | Ответить
iBot про MemTest 5.1 [29-08-2017]
Знаю эту программу лет 5 или больше. Единственная, которая показывала ошибки на старой системе, там возникла ситуация несовместимости старых и новых планок памяти (докупил), они отказывались работать на CR1 (синие экраны, спонтанные вылеты на ровном месте). При этом я знал, что старые планки железно стабильные, ведь до покупки новых проблем не было. Ни тест оперативной средствами Windows ни memtest86 ничего не показывали (может мало прогонов делал), а эта показала сразу. Когда выставил CR2 проблема исчезла, как и ошибки из этой программы теста. Я даже Pro версию купил, после той вакханалии, как спасибо разработчику.
Сейчас обновил систему и эта программа снова выручила. Разогнал Ryzen в АИДЕ64 15 часов стабилен (CPU+FPU+Cache), а вот в одном из 3-х инстансов этой программы по 2000 возникло две ошибки на 200+%, в оcтальных 1500% чисто. Запустил memtest86 7.4 тот подтвердил на первом проходе в 7 тесте единственную ошибку. Сделал еще 4 прохода, в одном снова появилась одинокая ошибка в 7 тесте. Программа работает как надо и memtest86 это подтвердил в этот раз.
Запускайте число инстансов на половину или 2/3 вашей памяти, оставляйте на ночь. Если не найдет ошибок, значит у вас все на 99,99999999% гуд.
5 | 11 | Ответить
Дмитрий про MemTest 5.0 [28-01-2017]
У кого не получается, пробуйте тестить по одной планке.
5 | 6 | Ответить
aleks про MemTest 5.0 [26-01-2017]
What is the RAM Limit in Windows 10 in 2018?
If you were wondering what the RAM limit is in Windows 10, Windows 8.1, read below to find the simple answer to this question.
Since Microsoft has announced the Windows 10, 8.1 update for Windows 8, many have started to wonder what was the RAM limit in Windows 10, Windows 8.1, since that might have been changed by the Redmond company, since the new update changes quite a lot of things. The average Joe users will be pleased with only a few RAMs, but filmmakers, engineers, doctors and many others specialized jobs require a lot of processing power.
On the other hand, many expected Windows 10 to support even more RAM power since the OS brings some heavy apps to the table — such as Mixed Reality apps. The RAM limit on Windows 10 has indeed increased, reaching 2TB GB for Windows 10 Pro and Windows 10 Enterprise.
RAM Limit in Windows 10, Windows 8.1
You can see in the above image, the maximum physical memory RAM limits for Windows 10, Windows 8 which are the same for Windows 8.1, as well. They are as follows:
- RAM limits in Windows 10, Windows 8.1 Enterprise – 4GB on x86, 512GB on x64
- RAM limits in Windows 10, Windows 8.1 Professional – 4GB on x86, 512GB on x64
- RAM limits in Windows 10, Windows 8.1 – 4GB on x86, 128GB on x64
The screenshot below lists the RAM limit for Windows 10:
You also need to be careful at this official explanation related to how graphics cards and other devices affect memory limits:
Devices have to map their memory below 4 GB for compatibility with non-PAE-aware Windows releases. Therefore, if the system has 4GB of RAM, some of it is either disabled or is remapped above 4GB by the BIOS. If the memory is remapped, X64 Windows can use this memory. X86 client versions of Windows don’t support physical memory above the 4GB mark, so they can’t access these remapped regions.
Any X64 Windows or X86 Server release can.X86 client versions with PAE enabled do have a usable 37-bit (128 GB) physical address space. The limit that these versions impose is the highest permitted physical RAM address, not the size of the IO space. That means PAE-aware drivers can actually use physical space above 4 GB if they want. For example, drivers could map the “lost” memory regions located above 4 GB and expose this memory as a RAM disk.
Unfortunately, although Windows 10 supports more RAM, sometimes computers can’t access all of it. If you’re experiencing the same problem, check out this guide to learn what you can do if Windows 10 won’t read all RAM.
What about you – are you running a monster of a machine on your device? What is your RAM limit in Windows 10, Windows 8 and Windows 8.1?
RELATED STORIES TO CHECK OUT:
Memory Limits for Windows and Windows Server Releases
This topic describes the memory limits for supported Windows and Windows Server releases.
Limits on memory and address space vary by platform, operating system, and by whether the IMAGE_FILE_LARGE_ADDRESS_AWARE value of the LOADED_IMAGE structure and 4-gigabyte tuning (4GT) are in use. IMAGE_FILE_LARGE_ADDRESS_AWARE is set or cleared by using the /LARGEADDRESSAWARE linker option.
4-gigabyte tuning (4GT), also known as application memory tuning, or the /3GB switch, is a technology (only applicable to 32 bit systems) that alters the amount of virtual address space available to user mode applications. Enabling this technology reduces the overall size of the system virtual address space and therefore system resource maximums. For more information, see What is 4GT.
Limits on physical memory for 32-bit platforms also depend on the Physical Address Extension (PAE), which allows 32-bit Windows systems to use more than 4 GB of physical memory.
Memory and Address Space Limits
The following table specifies the limits on memory and address space for supported releases of Windows. Unless otherwise noted, the limits in this table apply to all supported releases.
Memory type | Limit on X86 | Limit in 64-bit Windows | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
User-mode virtual address space for each 32-bit process | 2 GB Up to 3 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE and 4GT |
2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared (default) 4 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE set |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
User-mode virtual address space for each 64-bit process | Not applicable | With IMAGE_FILE_LARGE_ADDRESS_AWARE set (default): x64: WindowsВ 8.1 and Windows ServerВ 2012В R2 or later: 128 TB x64: Windows 8 and Windows Server 2012 or earlier 8 TB Intel Itanium-based systems: 7 TB 2 GB with IMAGE_FILE_LARGE_ADDRESS_AWARE cleared |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Kernel-mode virtual address space | 2 GB From 1 GB to a maximum of 2 GB with 4GT |
WindowsВ 8.1 and Windows ServerВ 2012В R2 or later: 128 TB Windows 8 and Windows Server 2012 or earlier 8 TB |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Paged pool | 384 GB or system commit limit, whichever is smaller. WindowsВ 8.1 and Windows ServerВ 2012В R2: 15.5 TB or system commit limit, whichever is smaller. Windows ServerВ 2008В R2, WindowsВ 7, Windows ServerВ 2008 and WindowsВ Vista: Limited by available kernel-mode virtual address space. Starting with WindowsВ Vista with Service PackВ 1 (SP1), the paged pool can also be limited by the PagedPoolLimit registry key value. Windows Home Server and Windows ServerВ 2003: 530 MB WindowsВ XP: 490 MB |
384 GB or system commit limit, whichever is smaller WindowsВ 8.1 and Windows ServerВ 2012В R2: 15.5 TB or system commit limit, whichever is smaller. Windows ServerВ 2008В R2, WindowsВ 7, Windows ServerВ 2008 and WindowsВ Vista: 128 GB or system commit limit, whichever is smaller Windows ServerВ 2003 and WindowsВ XP: Up to 128 GB depending on configuration and RAM. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Nonpaged pool | 75% of RAM or 2 GB, whichever is smaller. WindowsВ 8.1 and Windows ServerВ 2012В R2: RAM or 16 TB, whichever is smaller (address space is limited to 2 x RAM). WindowsВ Vista: Limited only by kernel mode virtual address space and physical memory. Starting with WindowsВ Vista with SP1, the nonpaged pool can also be limited by the NonPagedPoolLimit registry key value. Windows Home Server, Windows ServerВ 2003 and WindowsВ XP: 256 MB, or 128 MB with 4GT. |
RAM or 128 GB, whichever is smaller (address space is limited to 2 x RAM) WindowsВ 8.1 and Windows ServerВ 2012В R2: RAM or 16 TB, whichever is smaller (address space is limited to 2 x RAM). Windows ServerВ 2008В R2, WindowsВ 7 and Windows ServerВ 2008: 75% of RAM up to a maximum of 128 GB WindowsВ Vista: 40% of RAM up to a maximum of 128 GB. Windows ServerВ 2003 and WindowsВ XP: Up to 128 GB depending on configuration and RAM. |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
System cache virtual address space (physical size limited only by physical memory) | Limited by available kernel-mode virtual address space or the SystemCacheLimit registry key value. WindowsВ 8.1 and Windows ServerВ 2012В R2: 16 TB. WindowsВ Vista: Limited only by kernel mode virtual address space. Starting with WindowsВ Vista with SP1, system cache virtual address space can also be limited by the SystemCacheLimit registry key value. Windows Home Server, Windows ServerВ 2003 and WindowsВ XP: 860 MB with LargeSystemCache registry key set and without 4GT; up to 448 MB with 4GT. |
Always 1 TB regardless of physical RAM WindowsВ 8.1 and Windows ServerВ 2012В R2: 16 TB. Windows ServerВ 2003 and WindowsВ XP: Up to 1 TB depending on configuration and RAM. Physical Memory Limits: Windows 10The following table specifies the limits on physical memory for WindowsВ 10.
Physical Memory Limits: Windows Server 2016The following table specifies the limits on physical memory for Windows ServerВ 2016.
Physical Memory Limits: Windows 8The following table specifies the limits on physical memory for WindowsВ 8.
Physical Memory Limits: Windows Server 2012The following table specifies the limits on physical memory for Windows ServerВ 2012. Windows ServerВ 2012 is available only in X64 editions.
Physical Memory Limits: Windows 7The following table specifies the limits on physical memory for WindowsВ 7.
Physical Memory Limits: Windows Server 2008 R2The following table specifies the limits on physical memory for Windows ServerВ 2008В R2. Windows ServerВ 2008В R2 is available only in 64-bit editions.
Physical Memory Limits: Windows Server 2008The following table specifies the limits on physical memory for Windows ServerВ 2008. Limits greater than 4 GB for 32-bit Windows assume that PAE is enabled.
Physical Memory Limits: Windows VistaThe following table specifies the limits on physical memory for WindowsВ Vista.
Physical Memory Limits: Windows Home ServerWindows Home Server is available only in a 32-bit edition. The physical memory limit is 4 GB. Physical Memory Limits: Windows Server 2003 R2The following table specifies the limits on physical memory for Windows ServerВ 2003В R2. Limits over 4 GB for 32-bit Windows assume that PAE is enabled.
Physical Memory Limits: Windows Server 2003 with Service Pack 2 (SP2)The following table specifies the limits on physical memory for Windows ServerВ 2003 with Service PackВ 2 (SP2). Limits over 4 GB for 32-bit Windows assume that PAE is enabled.
Physical Memory Limits: Windows Server 2003 with Service Pack 1 (SP1)The following table specifies the limits on physical memory for Windows ServerВ 2003 with Service PackВ 1 (SP1). Limits over 4 GB for 32-bit Windows assume that PAE is enabled.
Physical Memory Limits: Windows Server 2003The following table specifies the limits on physical memory for Windows ServerВ 2003. Limits over 4 GB for 32-bit Windows assume that PAE is enabled.
Physical Memory Limits: Windows XPThe following table specifies the limits on physical memory for WindowsВ XP.
Physical Memory Limits: Windows EmbeddedThe following table specifies the limits on physical memory for Windows Embedded.
How graphics cards and other devices affect memory limitsDevices have to map their memory below 4 GB for compatibility with non-PAE-aware Windows releases. Therefore, if the system has 4GB of RAM, some of it is either disabled or is remapped above 4GB by the BIOS. If the memory is remapped, X64 Windows can use this memory. X86 client versions of Windows don’t support physical memory above the 4GB mark, so they can’t access these remapped regions. Any X64 Windows or X86 Server release can. X86 client versions with PAE enabled do have a usable 37-bit (128 GB) physical address space. The limit that these versions impose is the highest permitted physical RAM address, not the size of the IO space. That means PAE-aware drivers can actually use physical space above 4 GB if they want. For example, drivers could map the «lost» memory regions located above 4 GB and expose this memory as a RAM disk. Adblock |
-
Bits & Bytes
-
Webmastering & Programming
You should upgrade or use an alternative browser.
memtest under Windows
-
Thread startermikeblas
-
Start dateJul 17, 2015
-
#1
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
What is it really doing?
-
#2
- Joined
- May 24, 2006
- Messages
- 3,165
They have this caveat on their website:
No Windows program can directly check the RAM used by the OS; this is a fundamental limitation of using a modern OS. If you need to check every byte, consider purchasing MemTest Deluxe, which boots off of CD for unfettered access to RAM.
Unfortunately, it doesn’t provide much insight into how much coverage you can actually get out of the tool, practically speaking.
My recollection, having very occasionally run memory testers on non-Windows OSes, is that to increase coverage you are supposed to decrease the memory pressure as much as possible prior to running the tester. The tester process then requests a (large) amount of memory to be allocated to it, and proceeds to test it.
I suppose, if the OS doesn’t swap any memory to secondary storage, then there is a guarantee that you can test an amount of memory equal to what was allocated. Maybe I’m missing something here?
-
#3
- Joined
- May 24, 2006
- Messages
- 3,165
This assumption may be totally unrealistic, as I’m totally unfamiliar with page replacement and virtual memory mapping algorithms. I get some small joy whenever I can restate questions as classic ones in probability theory.
-
#4
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
An OS free boot-to-test arrangement means you’re running close to the metal, and can map your memory. When the OS is there, you’ve got no idea if that memory is physically contiguous or not. The 1.999 gigs tested with this program might be on one stick, or spread across all of your sticks, or in any pattern inbetween.
In neither case can you tell what byte of error was caused by which stick, but in the latter case I think you have a much higher chance of passing a test after only testing one stick when there are many other sticks in the system, and they could be bad.
I wonder if the issue at the core of this thread is caused by the in-OS testing doing this kind of mapping. Given the «recommend hci memtest over anything» response in that thread, I was really surprised to see it’s not doing anything special (AFAICT) to map or pin.
-
#5
- Joined
- May 24, 2006
- Messages
- 3,165
Not being able to pinpoint the failing memory module(s) seems like a major deficiency, particularly if there are a lot of them as might be the case for you.
I have used similar in-OS testers in OSX as a sanity test after installing new memory. I think I was able to allocate something like 13GB out of 16 without any swapping. If I actually suspected a memory failure then, as you suggest, I would switch to an OS-free at-boot tester.
-
#6
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
You could run 32 instances of the program in parallel. This is not a serious suggestion.
But it’s the suggestion that the app (and its documentation) make.
-
#7
pxc
Extremely [H]
- Joined
- Oct 22, 2000
- Messages
- 33,064
-
#8
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
I’m curious about software — so I asked here and not in the Memory forum thread. And to that end: does WEHA notice correctable/corrected ECC errors? Most people don’t run ECC, and simple parity errors aren’t correctable and result in a blue screen.
-
#9
- Joined
- May 24, 2006
- Messages
- 3,165
I presume WHEA or any other monitoring software would leverage this mechanism to do ECC reporting.
In any case, ECC error detection can’t exhaustively guarantee that your memory is functioning correctly; I think you need to rely on an explicit write-read of each address if you want multiple sigma confidence that your memory is good.
-
#10
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
-
#11
- Joined
- May 24, 2006
- Messages
- 3,165
-
#12
pxc
Extremely [H]
- Joined
- Oct 22, 2000
- Messages
- 33,064
It’s not my memory. I’m asking about this because if feels like the software is not really doing a good job of its advertised function, and on top of that people believe that it’s doing a great job of that function.
I agree. The promises seem to be oversold.
I figured with wanting to test 64GB that you already suspected a problem, which is why I suggested monitoring particular memory events.
-
#13
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
-
#14
- Joined
- Dec 3, 2005
- Messages
- 2,400
I’ve got it hosted on my LAN via TFTP, if I think there is an issue with memory I just PXE boot it and let it run overnight.
-
#15
- Joined
- Jun 4, 2012
- Messages
- 3,826
But how about creating a huge ramdisk and torture that instead? Sure, it won’t be all RAM, but if you free up enough you increase your chance of detecting something.
-
#16
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
-
#17
- Joined
- Jun 4, 2012
- Messages
- 3,826
However, programs like RamMap from sysinternals do show the actual physical addresses that are being occupied — by — like in my example — a ramdrive area.
And, yeah, you are still looking through a layer of abstraction that might very well be obscuring the actual hardware fault. So it’s not all bad.
I may come across as ignorant, but even this broken methodology oddly enough uncovered more instability issues related to RAM than an actual bare metal real mode tester. Why do you think that is? just my luck? not arguing, just asking.
-
#18
mikeblas
[H]ard|DCer of the Month — May 2006
- Joined
- Jun 26, 2004
- Messages
- 12,776
Do any modern memory testers run in real mode? Wouldn’t they be limited to the real-mode address space, which is a megabyte. (It’s been since, uh, the 80286? that I played with any of that, so …) My understanding is that memtest86 starts, gets the machine into protected mode, and then starts poking at memory.
To know why different tests produce different results for the same faults, we need to understand how the tests are different. Testing memory isn’t a standardized activity, so we can’t think of only «testing memory»; we have to concern ourselves with the details of what they’re doing. The differences are probably quite huge: memtest86 is very minimal. When Windows or Linux load, they do tons of initialization, run drivers, and so on. They also have schedulers, which move the testing software from core to core or even socket to socket; but that also go idle every once in a while, and run off to service other things. They turn on modes that memtest86 probably doesn’t support: turbo, throttling, and so on. We do don’t know what read/write pattern, and what specific bit pattern, each program uses. (HCI doesn’t say, but I think Memtest documents it and lets the user pick and choose, IIRC.)
We also don’t know what «instability issues» were in the environment you were testing, or if the different results are specific to your situation(s), or they apply to all situations.
Figuring out the differences is (to me) academically interesting. Without knowing the specific differences between the tests, and understanding common failure modes, it’s hard to make any complete claim about which might be «better». One difference we do know is that one runs under Windows and only allows testing 2047 megabytes at a time; while the other runs bare metal and tests the whole address space.
Last edited: Jul 21, 2015
-
#19
- Joined
- May 24, 2006
- Messages
- 3,165
Unsurprisingly, there also exist dedicated memory module testers — although these won’t catch interop failures that are specific to memory controller and board of the intended application.
-
#20
- Joined
- Jun 4, 2012
- Messages
- 3,826
So where does memtest place itself? I see there’s a ‘reserved’ amount given onscreen, around half a megabyte if I remember correctly. If it doesn’t fit into cache, where else can it reside other than RAM?
How about things like reserved ‘apertures’ which you can set in CMOS setup for the VGA chip or other onboard devices? Or a shadowed copy of the computer’s BIOS? Memtest can’t write to those areas even booted without an OS, can it?
As for my observation — I have a small set of samples so it’s not a reliable observation but I’d risk guessing that in ‘normal’ operation, additional variables are added — things like clock modulation occur for energy saving purposes, power sags occur during sudden changes to the power supply’s load (like hard drives waking up while you’re playing a 3D game and a write/read/compare tester works in the background). You yourself mentioned some of this.
I guess either temperature changes, power events or clock modulation are more likely to push a failing module’s circuits out of spec completely.
The testing machine in question was otherwise unchanged other than trying out various memory modules (DDR2). Same model&make modules that were sent to me via a RMA procedure made the computer stable.
After that debacle I run bootable memtest AND a thread or two of prime95 on ‘blend’ mode, whilst a hard drive write/read/compare is also running and I’ll throw in a looping graphics benchmark into the mix, too.
-
Bits & Bytes
-
Webmastering & Programming