硬體領域業內都知道晶片會Wear out,這應該是個普遍共識了。晶片用一段時間平均失效率就會上升,這是由晶片的物理特性決定的,是不可否認的客觀現實。注意這裡是平均,不是特指,說“我的電腦用了十年天天開,也沒事。”,沒有任何意義。所謂的電腦長久不關機的普通使用者,其實只是不關機的時間比較長。個別完全不關機的使用者電腦數年沒有問題,也不代表別人不會出問題。只有統計了大量樣本的資料才具有普遍性,才會適用於大多數使用者。
那麼哪裡才有不關機的大量樣本呢?那麼這個Wear out速度快慢和什麼有關呢?其實很簡單,所有云服務廠商的伺服器從來不會主動關機,他們動輒數萬數十萬的伺服器為我們提供了足夠的樣本空間。儘管他們的伺服器和一般的電腦有所不同,但實際上穩定性要遠高於普通電腦,他們的結果也會好於“電腦”,可以為我們對電腦的預期壽命提供一個上限。
雲伺服器的非計劃關機與故障率
據ITIC統計,2017幾個大的伺服器提供商非計劃關機天梯圖如下:
這些非計劃關機是為什麼呢?是不是停機檢修啊?那是計劃內關機(Planned Downtime)。非計劃關機都是硬體出了問題而停機。請注意這些廠商的伺服器質量相對是比較好的,而BAT等雲計算廠商、臉書FB等OCP廠商他們的機器質量更差,更容易出問題(想想為什麼質量差,但卻沒有動輒丟失資料?)。
根據我的經驗,上萬臺伺服器的雲運營中心,每天都會有數十臺乃至百臺機器都會因為硬體原因停機等待更換配件。那麼到底是哪些硬體壞了需要更換呢?是什麼讓這些硬體壞了呢?
記憶體
硬碟(HD/SSD)我就不提了,也許大家認為記憶體這個東西很皮實,不會壞。其實雲伺服器中記憶體的出錯是十分頻繁的。出錯起來也千奇百怪,開始可能是偶爾的隨機錯誤,經過ECC等校正後,就再也不會復現;而有時是某個Bit總是出錯,進而慢慢的整個row、column或者相鄰的cell開始出錯,從可以糾正的錯誤變成不可修正的錯誤,導致伺服器必須停機。這也是為什麼記憶體有這麼多RAS功能的原因,感興趣可以看看我的這幾篇文章:
是不是伺服器記憶體被頻繁訪問,讀寫多了才出錯。我桌上型電腦不太讀寫,就不會出錯呢?實際上,記憶體的壽命和老化有關,而和讀寫次數無關。
記憶體DRAM的每個單元可以看作一個電晶體和一個電容的組合:
電容負責儲存,充過電時是1,沒充過電是0,這就是記憶體是如何儲存資料的。電晶體是個開關,用於選中該電容。正是因為記憶體每個單元如此簡單,才能如此大規模組織起來,形成低價而密度很高的記憶體顆粒。
電容的問題是會慢慢放電(fading),所以要過一段時間就充電。JEDEC規定每過64ms就要refresh一次,也就是充電一次,這個由記憶體控制器來完成。Refresh的過程和讀寫沒有本質區別,我們來看1天啥也不幹,要讀寫多少次:
1000/ 64 * 60 * 60 * 24=1350000次
就是說每天記憶體的每個單元本身就要讀寫135萬次!事實上,讀寫對記憶體來說本質上沒有多大損耗,次數沒有上限。這和快閃記憶體在擦除時電子在包圍浮動柵的二氧化矽上進進出出,造成的老化完全不同(詳情見:老狼:手機快閃記憶體和固態硬碟為什麼擦除多了會損壞?)。
和CPU一樣,電晶體老化Aging是不可避免的:
總的來說溫度不高,5年應該沒有問題;過後會慢慢出現可修正錯誤,這時候就應該換記憶體了。需要指出的是這裡的記憶體是RDIMM,比桌上型電腦使用的UDIMM穩定的多。
CPU
CPU會用壞嗎?當然會:
Intel的3年質保並不是說說算了:
交到使用者手上或者伺服器廠商手上的CPU已經在浴缸曲線(Bathtub)模型的底部,也就是穩定期了。多多使用,過了底部就會進入耗損失效期(Wear-out),Wear out的後果是出錯而不是降頻,而很多種出錯都會被CPU的錯誤檢測發現並報告或者糾正,詳情請參閱本專欄的另一篇文章計算機硬體出錯了會發生什麼?,如果發現出錯,就是CPU開始進入失效期,以後錯誤會越來越多。
結論
高階大氣上檔次的伺服器用多了也會壞,遑論我們便宜的電腦了。這讓我想起有些人總是問伺服器的RDIMM某寶上為什麼這麼便宜?某寶的至強E5為什麼白菜價?因為是洋垃圾,快壞了。某些廠商會預防性更換硬體,某些廠商可糾正錯誤達到一個閾值後更換(儘管還可以用),這些硬體的可靠性十分堪憂。這也對所謂“電腦用不壞”的論調給予了事實上的否定。
當然一些希望2年左右就更新電腦的朋友不必擔心,可以一直使用。如果希望多用幾年,你沒事就關機吧。不為了壽命,也為綠色地球和你的錢包考慮一下吧。
硬體領域業內都知道晶片會Wear out,這應該是個普遍共識了。晶片用一段時間平均失效率就會上升,這是由晶片的物理特性決定的,是不可否認的客觀現實。注意這裡是平均,不是特指,說“我的電腦用了十年天天開,也沒事。”,沒有任何意義。所謂的電腦長久不關機的普通使用者,其實只是不關機的時間比較長。個別完全不關機的使用者電腦數年沒有問題,也不代表別人不會出問題。只有統計了大量樣本的資料才具有普遍性,才會適用於大多數使用者。
那麼哪裡才有不關機的大量樣本呢?那麼這個Wear out速度快慢和什麼有關呢?其實很簡單,所有云服務廠商的伺服器從來不會主動關機,他們動輒數萬數十萬的伺服器為我們提供了足夠的樣本空間。儘管他們的伺服器和一般的電腦有所不同,但實際上穩定性要遠高於普通電腦,他們的結果也會好於“電腦”,可以為我們對電腦的預期壽命提供一個上限。
雲伺服器的非計劃關機與故障率
據ITIC統計,2017幾個大的伺服器提供商非計劃關機天梯圖如下:
這些非計劃關機是為什麼呢?是不是停機檢修啊?那是計劃內關機(Planned Downtime)。非計劃關機都是硬體出了問題而停機。請注意這些廠商的伺服器質量相對是比較好的,而BAT等雲計算廠商、臉書FB等OCP廠商他們的機器質量更差,更容易出問題(想想為什麼質量差,但卻沒有動輒丟失資料?)。
根據我的經驗,上萬臺伺服器的雲運營中心,每天都會有數十臺乃至百臺機器都會因為硬體原因停機等待更換配件。那麼到底是哪些硬體壞了需要更換呢?是什麼讓這些硬體壞了呢?
記憶體
硬碟(HD/SSD)我就不提了,也許大家認為記憶體這個東西很皮實,不會壞。其實雲伺服器中記憶體的出錯是十分頻繁的。出錯起來也千奇百怪,開始可能是偶爾的隨機錯誤,經過ECC等校正後,就再也不會復現;而有時是某個Bit總是出錯,進而慢慢的整個row、column或者相鄰的cell開始出錯,從可以糾正的錯誤變成不可修正的錯誤,導致伺服器必須停機。這也是為什麼記憶體有這麼多RAS功能的原因,感興趣可以看看我的這幾篇文章:
老狼:伺服器的黑科技:伺服器是怎麼做到每年只停機30秒的?老狼:計算機硬體出錯了會發生什麼?老狼:WHEA原理和架構是不是伺服器記憶體被頻繁訪問,讀寫多了才出錯。我桌上型電腦不太讀寫,就不會出錯呢?實際上,記憶體的壽命和老化有關,而和讀寫次數無關。
記憶體DRAM的每個單元可以看作一個電晶體和一個電容的組合:
電容負責儲存,充過電時是1,沒充過電是0,這就是記憶體是如何儲存資料的。電晶體是個開關,用於選中該電容。正是因為記憶體每個單元如此簡單,才能如此大規模組織起來,形成低價而密度很高的記憶體顆粒。
電容的問題是會慢慢放電(fading),所以要過一段時間就充電。JEDEC規定每過64ms就要refresh一次,也就是充電一次,這個由記憶體控制器來完成。Refresh的過程和讀寫沒有本質區別,我們來看1天啥也不幹,要讀寫多少次:
1000/ 64 * 60 * 60 * 24=1350000次
就是說每天記憶體的每個單元本身就要讀寫135萬次!事實上,讀寫對記憶體來說本質上沒有多大損耗,次數沒有上限。這和快閃記憶體在擦除時電子在包圍浮動柵的二氧化矽上進進出出,造成的老化完全不同(詳情見:老狼:手機快閃記憶體和固態硬碟為什麼擦除多了會損壞?)。
和CPU一樣,電晶體老化Aging是不可避免的:
總的來說溫度不高,5年應該沒有問題;過後會慢慢出現可修正錯誤,這時候就應該換記憶體了。需要指出的是這裡的記憶體是RDIMM,比桌上型電腦使用的UDIMM穩定的多。
CPU
CPU會用壞嗎?當然會:
老狼:CPU能用多久?會不會因為老化而變慢?Intel的3年質保並不是說說算了:
交到使用者手上或者伺服器廠商手上的CPU已經在浴缸曲線(Bathtub)模型的底部,也就是穩定期了。多多使用,過了底部就會進入耗損失效期(Wear-out),Wear out的後果是出錯而不是降頻,而很多種出錯都會被CPU的錯誤檢測發現並報告或者糾正,詳情請參閱本專欄的另一篇文章計算機硬體出錯了會發生什麼?,如果發現出錯,就是CPU開始進入失效期,以後錯誤會越來越多。
結論
高階大氣上檔次的伺服器用多了也會壞,遑論我們便宜的電腦了。這讓我想起有些人總是問伺服器的RDIMM某寶上為什麼這麼便宜?某寶的至強E5為什麼白菜價?因為是洋垃圾,快壞了。某些廠商會預防性更換硬體,某些廠商可糾正錯誤達到一個閾值後更換(儘管還可以用),這些硬體的可靠性十分堪憂。這也對所謂“電腦用不壞”的論調給予了事實上的否定。
當然一些希望2年左右就更新電腦的朋友不必擔心,可以一直使用。如果希望多用幾年,你沒事就關機吧。不為了壽命,也為綠色地球和你的錢包考慮一下吧。