Как диагностировать оперативную память?
У меня есть процесс Java, который прерывается через некоторое время с SIGSEGV. Это начало происходить после того, как я обновил сервер с большим объемом оперативной памяти. После тестирования на разных JVM я подозреваю, что это может быть аппаратная проблема. Но memtest86 не обнаружил никаких проблем.
Итак, что еще я могу сделать, чтобы определить источник проблемы? Должен ли я брать модули ОЗУ один за другим, чтобы обнаружить неисправный модуль?
Сервер работает на 64-битном OpenSuse11.3.
Память не ECC, как кажется. У меня есть комплект этого (3*4 ГБ * 2 = 24 ГБ):
5 ответов
После просмотра настроек BIOS появился альтернативный "множитель системной памяти", который был установлен на 12. Я изменил этот параметр на "Авто", сбой больше не происходит. Поэтому я подумал, что это может помочь другим людям, у которых есть подобные проблемы.
Мы запускаем Memtest86+ против новых систем в течение 48-72 часов, и за эти годы мы обнаружили множество ошибок, которые не появлялись до 2-го или 3-го дня. Пара / несколько проходов просто не достаточно.
Кроме того, не смешивайте ECC и не-ECC, и да, вам, вероятно, придется удалить / жонглировать / повторно протестировать модули RAM, чтобы найти виновника.
Помните, что segfaults обычно происходят из-за программных ошибок, таких как переполнение буфера, использование после разыменования свободного и нулевого указателя.
Еще одно предложение о Memtests86 +. Memtest точно проверит всю память, но иногда сбой аппаратного обеспечения отображается только тогда, когда температурные условия машины достигают определенного уровня. И Memtest не влияет на диски и другие части системы.
Если вы думаете, что температура может быть проблемой, попробуйте запустить memtest при более низких температурных условиях, чем обычно.
Есть одно приложение, которое может помочь вам проверять ошибки в оперативной памяти во время работы вашей системы. Я имею в виду, вам не нужно перезагружать систему и прекращать работу. Проверка оперативной памяти и ваша работа может работать параллельно.
memtester
Если вы устанавливаете Ubuntu, вы можете установить его
sudo apt-get install memtester