專業鋁門窗、鍛造門設計及安裝 價格便宜、品質好、設計佳,值得您信賴 | 油漆工程承包,居家油漆粉刷、外牆油漆 油漆老師傅專業施工,來電免費估價! |
永不當機的電腦 |
房東:閃電俠 發表時間:2007-02-24 |
永不當機的電腦 科學家決定不再嘗試降低電腦當機的機率,反而把重心放在撰寫程式,讓電腦在當機時可以自行修復。 撰文╱福克斯(Armando Fox),美國史丹佛大學助理教授﹔帕特森(David Patterson),加州大學柏克萊分校教授。 翻譯/鍾樹人,專事翻譯,以資訊類為主。 尋找高度可靠的運算方法 數位運算效能在過去20年中提升了一萬倍:1983年時需耗費一年才能處理完畢的數據,如今不到一小時就可解決;在那個年代的桌上型電腦所具有的處理能力,甚至還比不上今天的掌上型電腦。然而,這樣的進步是要付出代價的。隨著複雜度的提高,數位系統的運作也變得容易受阻且不可信賴。 與電腦相關的失誤比比皆是,個人電腦經常故障或是當機,網站經常從線上消失;新升級的軟體原本是為了擴充效能而設計的,但可能讓事情變得更糟。姑且不論種種的不便,電腦還會導致昂貴的開銷:不論是個人還是公司,每年花費在電腦維修與運作上的支出,都遠高於軟體與硬體的總成本。對於這個問題,如今有了新的解決方法。 我們研究小組的成員,分別來自美國史丹佛大學與加州大學柏克萊分校。我們採取一種新的方針,把電腦故障與操作者的疏失,全都視為生命中必然會發生的事實。小組的重心則是放在設計出可從故障中快速復原的系統,而不再試圖降低電腦當機的機率(這大概是不可能的任務)。這個方法就稱做「復原導向運算」(recovery-oriented computing, ROC)。 我們決定把主力放在網站軟體的改進上。這種高度動態的運算系統必須可快速演化及擴張,以因應消費者的需求與市場壓力,同時還必須服務隨時想要立刻上網的使用者。想想Google搜尋引擎的例子,它的搜尋範圍原本只包括數億個英文網頁,但短短數年之間,卻已擴大到30億個網頁,其中涵括20種以上的語言、10幾種格式,還外加圖片。值此同時,Google每日的搜尋次數也從15萬成長為1億5000萬,這個網站比一開始的時候還要忙碌1000倍。 由於網站的軟硬體必須常常升級,若是採用過去的工程技術來維持系統運作的可靠性,開支就會變得過於昂貴;因此我們預期,網際網路軟體是可以印證我們想法的大好領域,而且或許可成為其他運算系統的模型,包括桌上型與筆記型電腦。如果ROC原則可協助電腦叢林裡的大型動物,那麼或許也能幫助較小型的物種。 我們的第一步,是看看能夠從過去的錯誤中學到什麼。這是一項被證實有效的工程策略,早在鑄鐵桁架鐵路橋樑盛行的19世紀,就已經受到採用。我們尤其想問:為什麼網路系統會故障?又如何改善?有點令人驚訝的是,我們發現系統會發生問題的首要原因,竟然是操作人員的疏失。傳統用來改善軟硬體可靠性的方法,大多忽略了人為失誤的可能性,然而有許多的例子顯示,因為操作人員出差錯所導致的停機時間,要比其他原因來得更長(參見《科學人》2003年7月號〈系統故障該怪誰?〉)。 操作人員之所以面臨此種困境,可能是因為電腦設計者及程式設計師為了追求更高的效能,常常會犧牲使用上的便利。以資料庫軟體為例,就需要一組受過系統管理訓練的全職員工來管理。諷刺的是,由於軟硬體愈來愈便宜,所以現今在運作複雜的網站時,操作人員的薪資常常佔開支的最大部份。 把這些問題謹記在心之後,我們小組開始研究四項原則,用以建立「完全復原導向運算」(ROC-solid)的電腦系統。第一項原則為快速復原:問題隨時都可能發生,所以工程師所設計的系統,應該要可以快速復原。第二,供應商應該提供更好的工具,以便操作人員從多元件系統中,找出精確的錯誤來源。第三,程式設計師所建立的系統,應該支援「復原」功能,就好像文書處理軟體一樣,如此一來,操作人員才能夠修正他們的錯誤。最後,電腦科學家還必須開發出在系統內加入測試用錯誤的能力,如此才有辦法評估系統的運作狀況,並且協助訓練操作人員。我們計畫把小組所寫的ROC軟體,免費提供給電腦科學社群內的成員使用。 為了讓更多人採用我們的方法,我們也提倡開發可測試運算系統復原速度的軟體,並將它廣為流傳。這個軟體應該可測量出電腦產業在提升系統可靠性上的進步,並激勵企業朝這個目標前進。 快速復原 許多使用者經常會重新啟動他們的個人電腦,要不是因為機器運作不順而先發制人地重新開機,就是因為電腦當機而採取此種反應。重新開機對大型電腦也有效,因為系統可重新開始,並且修復許多所謂的「暫時性」故障,也就是說,這些出問題的狀況是間歇出現的。 然而,許多系統的開機過程很長,更糟的是,處理中的資料還可能因此遺失。因此我們相信,工程師在設計系統時,應設法讓開機過程簡潔。如果我們可以透視電腦,就會看到電腦同時在執行好幾個互相合作的軟體元件。以線上購物為例,有些軟體模組可讓消費者在現有的商品當中搜尋;有些允許消費者把選項加入「購物車」;還有些其他的軟體會完成採購流程。另一層次的程式則把所有的這些功能匯整在一起,確保每一部份的程式碼在必要時發揮效用,以創造出該網站的整體使用經驗。 通常,只有一部份的軟體會發生問題,不過當使用者重新開機時,執行中的所有軟體都會立刻停止運作。然而,如果每個獨立的次元件可各自獨立重新啟動,可能就不必重新啟動所有的軟體。如果某個小問題只影響到系統的少數部份,那麼只要重新啟動這些獨立的元件,可能就足以解決問題了。如果這樣做沒有效果,再將較大一部份的次元件重新初始化,也許就可解決問題。難是難在如何重新啟動單一個模組,同時不讓其他相關模組感覺不對勁。這就像要從一疊盤子中抽出最底下的一個,而不讓其他盤子傾倒一樣,雖然是困難的技巧,但卻是可達成的目標。 我們小組中的兩位史丹佛研究生,坎迪亞與卡特勒,已開始專心開發這種獨立式重新開機的技術,我們稱之為「微重開機」(micro-rebooting)。卡特勒利用現成的個人電腦,加上便宜的業餘無線電設備及試驗軟體,以低廉的花費組裝出地面接收器,然後運用這個地面站建立系統,攔截來自衛星的資料。衛星地面站經常在運作過程中發生故障,如果不安排操作人員以手動的方式讓儀器恢復運作,地面站就可能失去衛星的訊號,連帶失去來自該軌道的所有資料。 微重開機如何縮短停機時間? 有A、B、C三位網路使用者進入了某個網站。A與B正在使用次元件2;C則否。 舊方法︰ 1.網站服務的所有軟體次元件都運作正確。 2.次元件2故障。使用者A與B收到錯誤訊息。操作人員不知道哪個次元件發生錯誤。 3.由於操作人員找不到發生錯誤的次元件,只好重新啟動整個系統。 4.所有的次元件都必須重新啟動,所以系統花了很長的時間才恢復。 新方法︰ 1.網站服務的所有軟體次元件都運作正確。 2.次元件2故障。使用者A與B收到錯誤訊息。PinPoint程式發現問題,並推論次元件2最可能出錯,因為A與B兩人都在使用次元件2。 3.微重開機軟體查詢資料庫,發現當次元件2故障時,一般會連帶影響到次元件1,於是決定重新啟動兩者。使用者C並未受到影響。 4.由於只重新啟動了兩個次元件,所以系統恢復整體運作的速度較快。 如何用新方法回到過去,逆轉錯誤? 1.記錄時間:一位使用者寄給朋友的電子郵件中夾有病毒。電子郵件系統未偵測出病毒的存在,所以操作人員無法保護系統不受感染。但因為「復原」模組會監控並記錄流入及流出系統的所有訊息(包括受感染的訊息),所以這類問題在狀況明朗時便可獲得解決。 2.時間倒轉:操作人員得知有一種新病毒正在流竄,並懷疑伺服器可能受到感染。幸運的,受感染的訊息尚未轉寄給目標收件者。操作人員於是命令復原模組運用「復原/重做記錄」內的資料,把病毒出現後才寄達的信件通通「撤回」。操作人員隨後安裝病毒過濾器。 3.往前播放:操作人員現在指示復原模組「重做」先前被「復原」的動作,把所有的訊息重新傳送到電子郵件伺服器。然而,這一次由於病毒過濾器發揮攔截作用,所以刪除了被感染的訊息,並且發信通知該郵件的收件者。 |
|
廣利不動產-是新板特區唯一房仲業擁有上億價值金店面自有自營 新北市知名度最高、值得您信賴的好房仲-提供完整房訊,房屋、店面熱門精選物件及不動產投資建議。 明日黃金屋-租屋網 提供租屋廣告刊登與租屋查詢,首創街景地圖、電子地圖、租屋配對等功能 ,租售房屋價格公開透明化 |
姓名: | |||
佈告內容: | |||
其他選項: | |||
|