測試 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 尚未遭受任何永久性損壞並且仍然可發揮作用。
- Linux查看cpu當前的各種資訊
- 關於Linux效能監控之CPU篇詳解
- CentOS系統CPU過熱處理的解決方案
- 系統監控:linux 系統監控命令詳解
- CentOS CPU使用率查看相應資訊分析系統狀況