LinuxCpu測試穩定的方法
測試 CPU 穩定性的最好方法之一是Linux 內建的 -- 內核編譯,您可能會感到奇怪。gcc 編譯器是測試一般 CPU 穩定性的一個很好的工具,內核編譯將充分使用 gcc。下面是LinuxCpu測試穩定的方法與應急方法。
LinuxCpu測試通過在/usr/src/linux 目錄創建并運行下面的腳本可以對您的機器進行 industrial-strength 內核編譯壓力測試:
cpubuild 腳本
#!/bin/bash
make dep
while [ "foo" = "foo" ]
do
make clean
make -j2 bzImage
if [ $? -ne 0 ]
then
echo OUCH OUCH OUCH OUCH
exit 1
fi
done
您將注意到此腳本重復編譯內核。原因很簡單 -- 一些 CPU 有斷斷續續的小故障,使得它們在 95% 的時間里順利地編譯內核,但又不時地使內核編譯崩潰。通常情況下,這是因為在處理器加熱到一定溫度(在該溫度下處理器變得不穩定)之前可能進行了 5 個或更多內核編譯。
在上面的腳本中,注意調整 -j 選項,使緊跟它的數字等于系統中 CPU 的數目加 1;換句話說,若是單處理器使用 "2",雙處理器使用 "3",依此類推。-j 選項告訴 make 程序行平行編譯內核,確保在編譯每個源文件后總有至少一個 gcc 進程準備就緒 -- 確保 CPU 承受的壓力達到最大。如果下午不準備使用 Linux 機器,請繼續運行此腳本并讓機器重新編譯內核幾個小時。
LinuxCpu測試可能的 CPU 問題
如果腳本持續幾個小時運行順利,祝賀您!您的 CPU 已經通過了第一個測試。但是,上述腳本可能會意外死掉。如何知道是 CPU 有問題而不是其它的問題呢?如果 gcc 發出與下面類似的錯誤,則很有可能是 CPU 有問題:
gcc: Internal compiler error: program cc1 got fatal signal 11
這時,CPU 有三種可能的狀態:
如果您輸入 "make bzImage" 重新進行內核編譯,并且編譯器死在同一文件上,請繼續一遍遍輸入 "make bzImage"。如果試了大約十次之后,編譯進程繼續死在此特定文件上,那么問題很可能是由(很少)gcc 編譯器錯誤引起的,該錯誤是由此特定的源文件而不是有問題的 CPU 觸發的。但是,這些天 gcc 很穩定,那么這種情況發生的可能性很小。
如果您輸入 "make bzImage" 重新進行內核編譯,并且稍后得到另一個信號 11,那么您的 CPU 很可能快要無法使用了。
如果您輸入 "make bzImage" 重新進行內核編譯并且內核編譯成功,那也不意味著您的 CPU 是好的。通常這意味著僅當 CPU 升到一定的溫度以上(CPU 使用超過一定時間后會變熱,可能進行過幾次內核編譯后能達到此臨界點),CPU 故障才不時地顯露出來。
LinuxCpu測試搶救 CPU
如果您的 CPU 在重負載之下正發生隨機的斷斷續續的錯誤,可能您的 CPU 根本沒什么問題 -- 可能只是冷卻不當。您可以檢查下列內容:您的 CPU 風扇是否已插上?
它是否能相對地避免灰塵?
通電時風扇確實旋轉(并以適當的速度旋轉)嗎?
散熱片在 CPU 上固定好了嗎?
在 CPU 和散熱片之間有導熱膠嗎?
您的機器通風情況足夠好嗎?
如果一切正常,您可能希望讓此打開的機器返回到內核編譯測試。請讓內核編譯進行大約五分鐘時間,然后將手放到這個正在運行的機器中并觸摸周圍的供電設備的外部金屬保護外套。然后,用指尖小心地測試散熱片的溫度。如果異常地熱,那么很可能您的散熱片/風扇組合相對于您的特定 CPU 來說不夠強勁。在這種情況下,升級您的系統冷卻硬件 --
CPU 尚未遭受任何永久性損壞并且仍然可發揮作用。
【編輯推薦】