[華語, cmn-Hant-TW]
之前這篇提到的那個硬體環境,沒提到的 CPU 跟 RAM 分別是 Athlon 64 X2 3800+ 2.0G 的雙核心 CPU 以及 2 條創見的 DDR400 1G RAM,主要是拿來跑 FreeBSD 上面的一些有的沒有的東西為主。最近除了把主硬碟換成 SSD 外,就是從別台再拔一條 1G 的 DDR400 RAM 過來,在另一篇有提到有開 zfs dedup 的話記憶體是多多益善,所以雖然插 3 條會被降速到 ddr 333 (印象中要4條插滿才會被降頻,不知道為什麼我插三條也被降就是),理論上還是值得的。
結果插下去狀況就狂出來了,gcc,clang,java,chromium 幾乎都有在編譯過程中爛掉 (segmentation fault) 的記錄,有時候甚至還會吃 kernel panic。第一件事不用說當然是懷疑記憶體,結果放 memtest86+ 跑了整天又一切正常,就想說會不會是 zfs swap 的問題呢,把 zfs swap 換回傳統的 swap 後問題還是存在,而且根本還沒用到 swap 就爛掉了,所以應該也不是這個造成的。接著目光轉到 CPU 這邊,懷疑說是過熱所以清了風扇還強制降速,經過特調後爛掉頻率少很多,至少 make kernel/world 大多能成功,不過這當然不是最終解,偶爾跳出來的錯誤訊息還是會讓人歸 LP 火。
最後發現只要拔掉多加的那根問題就解決了,更精確的講法就是:只要留兩根讓他可以跑雙通道問題就解決了。多的這 1G 浪費了我一大堆時間在 debug (memtest86+出來面對!),不過接下來好像可以來試看看 1G *4 or 1G*2 + 512M*2 跑雙通道的情況會是怎樣…… (工程師模式開啟中)
[update 2012-03-08] 多弄了一條一樣的 DDR400 1G 來測,發現插滿 4 條不能開機,第1-2-3或1-2-4插槽都可以開機。兩種情況都會降速成 DDR333 單通道,但是 1-2-4 就算把整個 port 都更新完都沒吃 segmentation fault 過 (之前是插 1-2-3),好把雖然不知道原因不過就加減繼續用下去吧。
[update 2012-03-27] 用一陣子有一天系統突然變得怪怪的,ssh tunnel 整個就變超慢而且一堆錯誤跑出來,重開也無效,再回去猜會不會是記憶體的問題,結果把記憶體的參數調得更鬆也是一樣,後來又是拔掉多的那條問題就解決,參數調回 ddr400 預設跑了好幾天 buildworld buildkernel chrome 也都沒問題。有了這兩次的經驗,短期內應該不會想再嘗試幫這台加 RAM 了。
Athlon 64從單核時代MCH就是內建在CPU裡
我記得4個DIMM全插滿能正常使用
是到某個版本後才解決的問題
也就是說沒修正前不能把4個DIMM全插滿
PS.年代久遠有點記不清楚了…
有印象,不過他現在連插三條都不太行,該不會是跟超頻久了之後會縮缸一樣吧… :p