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

У меня есть процесс Java, который прерывается через некоторое время с SIGSEGV. Это начало происходить после того, как я обновил сервер с большим объемом оперативной памяти. После тестирования на разных JVM я подозреваю, что это может быть аппаратная проблема. Но memtest86 не обнаружил никаких проблем.

Итак, что еще я могу сделать, чтобы определить источник проблемы? Должен ли я брать модули ОЗУ один за другим, чтобы обнаружить неисправный модуль?

Сервер работает на 64-битном OpenSuse11.3.

Память не ECC, как кажется. У меня есть комплект этого (3*4 ГБ * 2 = 24 ГБ):

http://www.kingston.com/datasheets/KHX1600C9S3K2_8GX.pdf

5 ответов

Решение

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

Мы запускаем Memtest86+ против новых систем в течение 48-72 часов, и за эти годы мы обнаружили множество ошибок, которые не появлялись до 2-го или 3-го дня. Пара / несколько проходов просто не достаточно.

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

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

Еще одно предложение о Memtests86 +. Memtest точно проверит всю память, но иногда сбой аппаратного обеспечения отображается только тогда, когда температурные условия машины достигают определенного уровня. И Memtest не влияет на диски и другие части системы.

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

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

memtester

Если вы устанавливаете Ubuntu, вы можете установить его

sudo apt-get install memtester
Другие вопросы по тегам