国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開發(fā) > 綜合 > 正文

Linux 硬件穩(wěn)定性指南,第 1 部分

2024-07-21 02:38:18
字體:
供稿:網(wǎng)友

  作者:Daniel Robbins
  
  CPU 和內(nèi)存疑難問題解答
  
  linux 負(fù)有盛名的特點(diǎn)之一是其非凡的穩(wěn)定性。然而,假如您的硬件有缺陷或配置不正確,即使是世界上最穩(wěn)定的操作系統(tǒng)也不會(huì)對(duì)您有什么幫助。本文中,Daniel Robbins 將告訴您如何診斷和修復(fù) CPU 問題,并告訴您如何測(cè)試 RAM 缺陷。通過學(xué)習(xí)本文,您將學(xué)會(huì)確保您的 Linux 系統(tǒng)達(dá)到盡可能好的的穩(wěn)定性。
  
  在 Linux 世界中,我們中的許多人已遭受過令人深惡痛絕的硬件問題之苦。許多人曾經(jīng)配置了一臺(tái) Linux 機(jī)器、安裝了最喜歡的分發(fā)軟件、編譯并安裝了一些附加應(yīng)用程序并且使各個(gè)部件都運(yùn)行順利,到最后發(fā)現(xiàn)新系統(tǒng)中有一個(gè)致命的硬件錯(cuò)誤?無論是隨機(jī)分段錯(cuò)誤、數(shù)據(jù)毀壞、硬鎖定、還是丟失數(shù)據(jù)其結(jié)果都是一樣的 -- 硬件故障使通常情況下可靠的 Linux 操作系統(tǒng)幾乎無法順利運(yùn)行。本文中,我們將深入探討如何檢測(cè) CPU 和 RAM 問題 -- 在缺陷部件造成一些嚴(yán)重的破壞之前就答應(yīng)更換它們。
  
  假如您正遭遇不穩(wěn)定問題并且猜測(cè)該問題與硬件有關(guān),我鼓勵(lì)您測(cè)試 CPU 和內(nèi)存以確保它們工作正常。但是,即使您尚未碰到這些問題,執(zhí)行 CPU 和內(nèi)存測(cè)試仍不失為一個(gè)好主意。在測(cè)試 CPU 和內(nèi)存中,您可能會(huì)檢測(cè)到硬件問題,它可能會(huì)在某個(gè)不適當(dāng)?shù)臅r(shí)候給您帶來麻煩,并可能已經(jīng)造成了數(shù)據(jù)丟失或讓您花了數(shù)小時(shí)卻搜索不到問題的根源。正確地,前瞻性地應(yīng)用這些技術(shù)可幫助您避開這些令人頭疼的問題,并且假如系統(tǒng)通過了測(cè)試,您即可放心,系統(tǒng)是符合規(guī)范的。
  
  CPU 問題
  假如您有一個(gè)非常糟糕的 CPU,您的機(jī)器可能無法引導(dǎo) Linux 或僅運(yùn)行幾分鐘便被鎖定。由于癥狀非常明顯,所以輕易診斷出這種不良狀態(tài)下的 CPU 是有缺陷的。但更多的是一些不易檢測(cè)到的細(xì)微的 CPU 缺陷;一般情況下,不太明顯的錯(cuò)誤能引起機(jī)器無明顯原因的不時(shí)鎖定,或?qū)е履承┻M(jìn)程意外死掉。多數(shù) CPU 不穩(wěn)定問題可通過“考驗(yàn)”CPU 來觸發(fā) -- 給 CPU 分配大量的工作,促使其變熱,甚至在可能的情況下使它休眠。讓我們看一下壓力測(cè)試 CPU 的一些方法。
  
  當(dāng)聽說測(cè)試 CPU 穩(wěn)定性的最好方法之一是 Linux 內(nèi)建的 -- 內(nèi)核編譯,您可能會(huì)感到希奇。gcc 編譯器是測(cè)試一般 CPU 穩(wěn)定性的一個(gè)很好的工具,內(nèi)核編譯將充分使用 gcc。通過在 /usr/src/linux 目錄創(chuàng)建并運(yùn)行下面的腳本可以對(duì)您的機(jī)器進(jìn)行 industrial-strength 內(nèi)核編譯壓力測(cè)試:
  
  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)核。原因很簡(jiǎn)單 -- 一些 CPU 有斷斷續(xù)續(xù)的小故障,使得它們?cè)?95% 的時(shí)間里順利地編譯內(nèi)核,但又不時(shí)地使內(nèi)核編譯崩潰。通常情況下,這是因?yàn)樵谔幚砥骷訜岬揭欢囟龋ㄔ谠摐囟认绿幚砥髯兊貌环€(wěn)定)之前可能進(jìn)行了 5 個(gè)或更多內(nèi)核編譯。
  
  在上面的腳本中,注重調(diào)整 -j 選項(xiàng),使緊跟它的數(shù)字等于系統(tǒng)中 CPU 的數(shù)目加 1;換句話說,若是單處理器使用 "2",雙處理器使用 "3",依此類推。-j 選項(xiàng)告訴 make 程序行平行編譯內(nèi)核,確保在編譯每個(gè)源文件后總有至少一個(gè) gcc 進(jìn)程預(yù)備就緒 -- 確保 CPU 承受的壓力達(dá)到最大。假如下午不預(yù)備使用 Linux 機(jī)器,請(qǐng)繼續(xù)運(yùn)行此腳本并讓機(jī)器重新編譯內(nèi)核幾個(gè)小時(shí)。
  
  可能的 CPU 問題
  假如腳本持續(xù)幾個(gè)小時(shí)運(yùn)行順利,祝賀您!您的 CPU 已經(jīng)通過了第一個(gè)測(cè)試。但是,上述腳本可能會(huì)意外死掉。如何知道是 CPU 有問題而不是其它的問題呢?假如 gcc 發(fā)出與下面類似的錯(cuò)誤,則很有可能是 CPU 有問題:
  
  gcc: Internal compiler error: PRogram cc1 got fatal signal 11
  
  這時(shí),CPU 有三種可能的狀態(tài):
  
  假如您輸入 "make bzImage" 重新進(jìn)行內(nèi)核編譯,并且編譯器死在同一文件上,請(qǐng)繼續(xù)一遍遍輸入 "make bzImage"。假如試了大約十次之后,編譯進(jìn)程繼續(xù)死在此特定文件上,那么問題很可能是由(很少)gcc 編譯器錯(cuò)誤引起的,該錯(cuò)誤是由此特定的源文件而不是有問題的 CPU 觸發(fā)的。但是,這些天 gcc 很穩(wěn)定,那么這種情況發(fā)生的可能性很小。
  假如您輸入 "make bzImage" 重新進(jìn)行內(nèi)核編譯,并且稍后得到另一個(gè)信號(hào) 11,那么您的 CPU 很可能快要無法使用了。

  假如您輸入 "make bzImage" 重新進(jìn)行內(nèi)核編譯并且內(nèi)核編譯成功,那也不意味著您的 CPU 是好的。通常這意味著僅當(dāng) CPU 升到一定的溫度以上(CPU 使用超過一定時(shí)間后會(huì)變熱,可能進(jìn)行過幾次內(nèi)核編譯后能達(dá)到此臨界點(diǎn)),CPU 故障才不時(shí)地顯露出來。
  
  
  
  搶救 CPU
  假如您的 CPU 在重負(fù)載之下正發(fā)生隨機(jī)的斷斷續(xù)續(xù)的錯(cuò)誤,可能您的 CPU 根本沒什么問題 -- 可能只是冷卻不當(dāng)。您可以檢查下列內(nèi)容:
  
  您的 CPU 風(fēng)扇是否已插上?
  它是否能相對(duì)地避免灰塵?
  通電時(shí)風(fēng)扇確實(shí)旋轉(zhuǎn)(并以適當(dāng)?shù)乃俣刃D(zhuǎn))嗎?
  散熱片在 CPU 上固定好了嗎?
  在 CPU 和散熱片之間有導(dǎo)熱膠嗎?
  您的機(jī)器通風(fēng)情況足夠好嗎?
  
  假如一切正常,您可能希望讓此打開的機(jī)器返回到內(nèi)核編譯測(cè)試。請(qǐng)讓內(nèi)核編譯進(jìn)行大約五分鐘時(shí)間,然后將手放到這個(gè)正在運(yùn)行的機(jī)器中并觸摸四周的供電設(shè)備的外部金屬保護(hù)外套。然后,用指尖小心地測(cè)試散熱片的溫度。假如異常地?zé)幔敲春芸赡苣纳崞L(fēng)扇組合相對(duì)于您的特定 CPU 來說不夠強(qiáng)勁。在這種情況下,升級(jí)您的系統(tǒng)冷卻硬件 -- CPU 尚未遭受任何永久性損壞并且仍然可發(fā)揮作用。
  
  最終 CPU 測(cè)試
  內(nèi)核編譯測(cè)試是測(cè)試 CPU 穩(wěn)定性的一個(gè)很好的方法,但還有一個(gè)更極端的 CPU 測(cè)試方法,或許您希望使用。我將這種方法保留到最后,是因?yàn)榧偃?CPU 只粗略地冷卻過,這種非凡的測(cè)試可能會(huì)真的使其過熱,理論上會(huì)對(duì) CPU 造成永久性損壞。這種測(cè)試傾向于那些通過內(nèi)核測(cè)試,沒有什么問題的系統(tǒng) -- 那些您希望確保即使 CPU 負(fù)載達(dá)到極限也能輕松處理的系統(tǒng)。假如您的 CPU 已經(jīng)過適當(dāng)?shù)乩鋮s,將會(huì)通過這個(gè)測(cè)試,假如沒通過,則需要進(jìn)一步冷卻。
  
  要執(zhí)行 "最終" CPU 測(cè)試,所做的第一件事是轉(zhuǎn)到 Lm_sensors 頁(yè)(請(qǐng)參閱參考資料)并下載 lm_sensors 軟件包。源 tarball 包含各種內(nèi)核模塊,這些模塊結(jié)合了幾乎已內(nèi)建在所有當(dāng)今主板上的健康監(jiān)視功能。一旦正確安裝了軟件包并且裝載(使用 prog/detect/sensors-detect 腳本指出裝入哪些模塊)合適的模塊,您將看到一些新文件和目錄出現(xiàn)在 /proc/sys/dev/sensors 下。這些文件包含方便的信息如 CPU 風(fēng)扇速度、CPU 和主板溫度讀數(shù)以及主板電壓讀數(shù),所有這些信息都會(huì)實(shí)時(shí)更新。由于我配置此軟件包收到了較好的效果,所以我推薦您配置此軟件包作為模塊編譯并使用 sensors-detect 腳本來指出引導(dǎo)時(shí)裝入哪些模塊。
  
  一旦裝入了 lm_sensors 模塊,我推薦您安裝一個(gè)圖形 CPU/傳感器監(jiān)視器,它使您能夠?qū)崟r(shí)觀察 CPU 負(fù)載和溫度而無須重復(fù)地在 /proc/sys/dev/sensors 中 "cat" 文件。出于這個(gè)目的,我使用一個(gè)稱為 gkrellm (請(qǐng)參閱參考資料)的很小的程序。這是我的 gkrellm 應(yīng)用程序的快照,用來監(jiān)視 CPU 使用情況、主板溫度設(shè)置和其它一些事情:
  
  gkrellm 正在運(yùn)行
  
   Linux 硬件穩(wěn)定性指南,第 1 部分
  還有其它與 lm_sensors 兼容的圖形監(jiān)視軟件包可用;您會(huì)發(fā)現(xiàn)在 lm_sensorshome 主頁(yè)的"鏈接"部分上,列出了許多這種軟件包。
  
  最后一步預(yù)備步驟是下載 cpuburn 程序(請(qǐng)參閱參考資料)。這個(gè)方便的小程序使用機(jī)器指令的手工組合為您的特定 CPU 施加最大的壓力 -- 甚至比重復(fù)的內(nèi)核編譯的壓力還要大一些。檔案中包含的多種小程序被定制為設(shè)置 P5 和 P6 級(jí)處理器,和 AMD K6 的非凡版本。一旦已將 cpuburn tarball 解包,請(qǐng)讀 README 文件;它說明如何編譯所包含的匯編源文件。完成這些后,您將擁有自己的 cpuburn 小程序。
  
  現(xiàn)在,等待測(cè)試。我通常啟動(dòng)我的圖形傳感器監(jiān)視器,然后作為 root 啟動(dòng) cpuburn 程序。然后,觀察 CPU 溫度讀數(shù)上升并變穩(wěn),讓 cpuburn 保持運(yùn)行大約一個(gè)小時(shí)。假如重復(fù)這些步驟而且 CPU 溫度持續(xù)上升到異常高的溫度(160 華氏度左右將被認(rèn)為是“異常”高),那么您的 CPU 冷卻系統(tǒng)需要大的調(diào)整。假如機(jī)器崩潰或鎖定,或 cpuburn 進(jìn)程死掉,那么您的 CPU 冷卻需要改進(jìn) -- 或者可能您的特定 CPU 只是簡(jiǎn)單地不符合“規(guī)范”。您可以使用 CPU 溫度讀數(shù)作出判定。但假如一切順利,那么您的系統(tǒng)將可應(yīng)付所有的挑戰(zhàn)。大約一小時(shí)后,您可以繼續(xù)進(jìn)行并殺死 cpuburn 程序,恢復(fù)正常操作。
  
  內(nèi)存測(cè)試
  擁有一個(gè)完全可靠的 CPU 的確很重要,但擁有一個(gè)非常穩(wěn)固的 RAM 芯片也很重要。有些人認(rèn)為 SIMMS 和 DIMMS 永遠(yuǎn)不會(huì)壞,從不需要測(cè)試。不幸的是,這種想法是錯(cuò)誤的 -- 壞的內(nèi)存非常普遍,我們都需要注重內(nèi)存問題。另有一些人認(rèn)為假如可能有壞的 RAM,引導(dǎo)時(shí) BIOS 內(nèi)存檢查會(huì)檢測(cè)出所有的 RAM 錯(cuò)誤。這種想法也是錯(cuò)誤的;BIOS 內(nèi)存檢查檢測(cè)不到許多壞的 RAM,所以不要讓 BIOS 檢查給您一種安全的錯(cuò)覺。
  
  壞內(nèi)存癥狀
  好的,這里有一個(gè)壞的 RAM,或許現(xiàn)在正在您的機(jī)器里面。這里有一些警告跡象指出您的機(jī)器包含壞的 RAM:
  
  當(dāng)同時(shí)裝載大量的程序時(shí),不時(shí)有某個(gè)程序無明顯原因地死掉。
  不時(shí)地,打開一個(gè)文件時(shí),顯示文件被毀壞。假如稍后打開,文件看起來又好了。
  當(dāng)抽取 tarball ("tar xzvf") 時(shí),tar 頻頻報(bào)告 tarball 已毀壞。過幾天再次嘗試抽取 tarball 時(shí) tar

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁城县| 广德县| 莱州市| 千阳县| 贵州省| 上栗县| 郧西县| 农安县| 泽库县| 如东县| 景东| 南汇区| 缙云县| 泽普县| 宣威市| 二手房| 阳谷县| 江源县| 庆城县| 龙门县| 容城县| 武山县| 尖扎县| 贵溪市| 江西省| 北川| 扎囊县| 巴林右旗| 会宁县| 榆树市| 维西| 修武县| 城步| 汨罗市| 马公市| 科技| 荆门市| 全州县| 金秀| 建平县| 孟津县|