內行人才知道的系統設計面試指南 — 第二章

--

接續上篇閱讀,邊看書邊延伸閱讀,轉化為文字作為學習輸出…
有錯再請指正,感謝諸位大大,好人上廁所都有衛生紙XD

粗略的估算

當你設計系統時,你需要具對數字有敏感程度,才可以估算系統穩定程度,這部分感覺也是經驗談,需要時間累積。

書中舉例情境:

先介紹一些後端負載名詞,衡量負載量的指標。

  • QPS (Queries Per Second):每秒查詢次數,可以想成每秒有多少請求數
  • 併發:時常聽到高併發,併發指某個時間點,有多少訪問同時到來
  • PV(Page Views):廣義來說,頁面瀏覽數
  • SLA(Service Level Agreement):服務供應商和客戶進行協議,定義服務所提供的正常運行時間等級
  • DAU(Daily Active Users):每天活躍用戶
  1. 情境一:每個月有三億活躍用戶,每天約有 50% 的用戶經常使用服務,這 50% 的用戶每天平均進站兩次。
  • DAU:3 億 * 0.5 = 1.5 億
  • QPS: (1.5 億 * 2) / (24 * 60 * 60) = 3472
  • QPS 峰值:高峰 QPS 約莫為平均值兩倍 => 2 * 3472 = 6944

2. 情境二:社群服務,每小時 PV 100 萬,這期間根據 80/20 法則有 20 % PV 的人會進行發文,預估高峰值五倍。

  • DAU:1 萬 * 24 = 24 萬
  • 讀取 QPS: 100 萬/ (24 * 60 * 60) = 11.6
  • 讀取 QPS 峰值:峰值為五倍,預估可能下班時間很多人上社群網站滑手機,11.6 * 5 = 58
  • 寫入 QPS: (100 萬 * 0.2) / (24 * 60 * 60) = 2.3
  • 讀取 QPS 峰值:峰值為五倍,預估可能下班時間有 20 % 的人們發文,新增文章 Insert 至資料庫,2.3 * 5 = 11.5

這章竟然就這樣而已XD
突然的 End~

--

--