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