Java
如何診斷記憶體?
我有一個 java 程序在一段時間後被 SIGSEGV 中止。在我用更多 RAM 升級伺服器後開始發生這種情況。在不同的 JVM 上進行測試後,我懷疑這可能是硬體問題。但是memtest86沒有檢測到問題。
那麼,我還能做些什麼來檢測問題的根源呢?我應該一個一個地取出RAM模組來檢測故障模組嗎?
伺服器在 64 位 OpenSuse11.3 上執行。
記憶體似乎不是 ECC。我有一個這樣的套件(3 * 4GB * 2 = 24GB):
我們針對新系統執行Memtest86+ 48-72 小時,多年來我們發現了很多直到第二天或第三天才出現的錯誤。幾次/幾次通行證是不夠的。
此外,不要混合 ECC 和非 ECC,是的,您可能必須移除/調整/重新測試 RAM 模組才能找到罪魁禍首。
請記住,段錯誤通常是由於諸如緩衝區溢出、釋放後使用和空指針取消引用等程式錯誤造成的。