架構設計(九):估算

架構設計(九):估算

作者:Grey

原文地址:

博客園:架構設計(九):估算

CSDN:架構設計(九):估算

估算在系統設計中非常重要,這決定了你的設計是否可以滿足要求,要實現比較靠譜的估算,就需要對如下幾個概念熟練掌握

第一個概念:二的冪

儘管在處理分佈式系統時,數據量可能是巨大的,但計算都可以歸結爲基礎知識。爲了獲得正確的計算結果,關鍵是要知道使用2的冪的數據量單位。一個字節是一個8位的序列。一個ASCII字符使用一個字節的內存(8位)。可參考如下表格

次冪 近似值 名稱
10 1000 1KB
20 100萬 1MB
30 10億 1GB
40 1萬億 1TB
50 1千萬億 1PB

第二個概念:關於延時指標的常見場景

注:以下指標說明來自J. Dean.Google Pro Tip: Use Back-Of-The-Envelope-Calculations To Choose The Best Design ,雖然是基於2010年的狀況,但是目前這些指標還是有一定的參考價值。

操作 參考時間量級
L1高速緩存 0.5 ns
分支錯誤預測 5 ns
L2高速緩存 7 ns
互斥器鎖定/解鎖 100 ns
主內存 100 ns
用Zippy壓縮1K字節 10,000 ns
通過1 Gbps網絡發送2K字節 20,000 ns
從內存中連續讀取1MB 250,000 ns
在同一數據中心內的數據往返 500,000 ns
磁盤搜索 10,000,000 ns
從網絡中連續讀取1MB 10,000,000 ns
從磁盤順序讀取1MB 30,000,000 ns

上述場景也有一個可視化的工具可以查看,見Latency Numbers Every Programmer Should Know
目前展示到了 2020 年。

img

通過分析上述數字,可以得到以下結論。

  • 內存很快,但磁盤很慢。

  • 如果可能的話,要避免磁盤尋道。

  • 簡單的壓縮算法是快速的。

  • 如果可能的話,在通過互聯網發送數據之前要進行壓縮。

  • 數據中心通常在不同地區,在它們之間發送數據需要時間

第三個需要了解的概念是:系統可用時間百分比

高可用性是指一個系統在一個理想的長時間內持續運行的能力。高可用性是以百分比來衡量的,100%意味着一個服務沒有停機時間。大多數服務在99%和100%之間。服務水平協議(SLA)是服務提供者的一個常用術語。這是你(服務提供商)和你的客戶之間的協議,這個協議正式定義了你的服務將提供的正常運行時間水平,正常運行時間傳統上是以九爲單位衡量。九位數越多,越好。如表2-3所示,九位數與預期的系統停機時間相關。

可用性 平均每天停機時間 平均每年停機時間
99% 14.40分鐘 3.65天
99.9% 1.44分鐘 8.77小時
99.99% 8.64秒 52.6分鐘
99.999% 864毫秒 5.26分鐘
99.9999% 86.4毫秒 31.56秒

雲供應商亞馬遜谷歌微軟將其SLA設定爲99.9%或以上。

參考資料

System Design Interview

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章