# Ch7 評估參數 ###### tags:`計算機組織` ## 量測 I/O 系統 ### dependability - 一個系統所能提供服務的品質 - 由 reliability 和 availability 決定 ### Reliability - 條件機率 - mean time to failures(MTTF) - 增加 MTTF 可以同時增加 reliability 和 availability ### availability - availability 是某一個時間點使用系統,這個系統是好的機率 - mean time to failures(MTTF) - mean time to repair(MTTR): 系統是壞的時間,要多久才會修復 - 系統的整體時間 = MTTF + MTTR = mean time between failure (MTBF)兩次壞掉的時間 - availability = $\frac{MTTF}{MTTF+MTTR}$ ### MTBF - 指的是「平均故障間隔時間」,代表一個設備從一次失效到下一次失效之間的期望時間(expected time)。 - 單位通常是小時,越大表示越可靠。 ### 如何改善 > 整體來說就是要增加 quality of the components,或是設計系統可以容忍failure > 對於 availability 增加 MTTF 和減少 MTTR 是一樣的效果 - Fault avoidance : - 在建構系統時,避免 fault 發生。 - 像是設計一種系統,重要的 component 是由三個 output 決定最終 output - 當有一個 output 死掉了,不會影響最終 output。 - Fault tolerance - 有備份元件,用 switch 到好的 component - Fault forecasting - 預測錯誤的產生,在錯誤發生前處理 ### 計算 - MTBF(array) = MTBF(one disk) / No. of disk in array - 只要陣列中的任意一顆硬碟故障,整個陣列就可能失效 - 假設每顆硬碟故障發生的都是獨立的 - Annual Failure Rate (AFR) = No. of disk / MTTF - raid 5 有非常低的 MTTR ## 為什麼 n 個 disk in disk array 會讓 $\frac{MTBF}{N}$ ? 這是一個關於「系統可靠度」與「統計期望值」的問題,核心觀念是:**一組有多個元件的系統,其失敗的期望時間(MTBF)會比單一元件低,因為只要任一元件失敗,整個系統就會出問題。** ### Step 1:故障時間的分布(Exponential Distribution) 實際上,電子設備的壽命常以「指數分布」(Exponential distribution) 模型表示。 這是一種常見的模型,其特性如下: * 對一個設備,其故障的「平均等待時間」是 MTBF,記作 $T$。 * 指數分布的「記憶性」表示過去多久不影響未來壞掉的機率。 指數分布的失敗率是常數,我們記作: $$ \lambda = \frac{1}{T} $$ 這時候,單一磁碟在時間 $t$ 內存活的機率是: $$ \begin{aligned} P(T_i > t) &= 1 - \int^{t}_{-\infty}\lambda e^{-\lambda t}dt\\ &= 1 - (1 -e^{-\lambda t})\\ &= e^{-\lambda t} \end{aligned} $$ ### Step 2:有 n 個磁碟的系統的失敗機率 結論是以下要證明這個式子的正確性 : $$ \lambda_{\text{system}} = n \cdot \lambda = \frac{n}{T} $$ 整個系統的壽命 = 所有磁碟中最早壞掉的那顆磁碟的壽命: $$ T_{\text{system}} = \min(T_1, T_2, \dots, T_n) $$ 整個系統能在至少多長的時間都不會壞的機率 : $$\begin{aligned} P(T_{\text{system}} > t) &= P(\min(T_1, \dots, T_n) > t) \\ &= P(T_1 > t \ \text{and} \ T_2 > t \ \dots \ T_n > t)\\ &= P(T_1 > t) \cdot P(T_2 > t) \cdots P(T_n > t) = (e^{-\lambda t})^n = e^{-n\lambda t} \end{aligned} $$ $$\begin{aligned} &\because T_{\text{system}}~\sim \text{Exponential}(n\lambda)\\ &\therefore E(T_{\text{system}}) = n\lambda \end{aligned} $$ ### Step 3:將系統的失敗率轉換回 MTBF 由於 MTBF 就是失敗率的倒數,我們就得到: $$ \text{MTBF}_{\text{system}} = \frac{1}{\lambda_{\text{system}}} = \frac{1}{n/T} = \frac{T}{n} $$