如何诊断 RAM?

如何诊断 RAM?

我有一个 Java 进程,一段时间后因 SIGSEGV 而中止。在我使用更多 RAM 升级服务器后,这种情况开始发生。在不同的 JVM 上测试后,我怀疑这可能是硬件问题。但 memtest86 没有检测到任何问题。

那么,我还能做什么来检测问题的根源?我是否应该逐个取出 RAM 模块来检测故障模块?

服务器运行在64位OpenSuse11.3上。

看起来内存不是 ECC 内存。我有一套这样的内存 (3*4GB * 2 = 24GB):

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

答案1

我们跑Memtest86+针对新系统进行 48-72 小时的测试,多年来,我们发现了许多直到第二天或第三天才出现的错误。几次测试根本不够。

另外,不要混合 ECC 和非 ECC,是的,您可能必须移除/调整/重新测试 RAM 模块才能找到罪魁祸首。

答案2

请记住,段错误通常是由于编程错误引起的,例如缓冲区溢出、释放后使用以及空指针取消引用。

答案3

还有一个建议,关于Memtests86+。Memtest 肯定会检查所有内存,但有时硬件故障仅在机器的温度条件达到一定水平时才会显示。而且 memtest 不会对磁盘​​和系统的其他部分施加压力。

如果您认为温度可能是一个问题,请尝试在比平常更差的温度条件下运行内存测试。

答案4

有一个应用程序可以帮助您在运行系统时检查 RAM 中的错误。我的意思是您无需重新启动系统并停止工作。RAM 检查和您的工作可以并行运行。名为

记忆测试仪

如果你正在安装 Ubuntu,你可以安装它

sudo apt-get install memtester

相关内容