架構師必備:系統容量現狀checklist

Java烘焙師發表於2022-06-13

正如飛機在起飛前,機長、副機長要過一遍checklist檢查,確認沒問題了才能起飛。樓主也整理了一個系統容量現狀checklist,方便對照檢查。本文搭配架構師必備:如何做容量預估和調優,食用更佳。
作為架構師,不要覺得系統容量是運維工程師才關心的問題,而應當對系統容量現狀做到了如指掌。這樣才能知道系統的瓶頸在哪,哪些優化是要優先做的,以及為了應對活動期間突發的流量,做多少擴容。

本文分為2大部分,一是資源使用率,二是業務指標。

資源使用率

服務例項

  • 例項個數、每個例項server的工作執行緒個數、MQ消費組執行緒個數
  • QPS峰值
  • 介面響應時間:平均、95分位、99分位、最大值
  • CPU使用率峰值
  • 報錯數量/秒
  • JVM堆記憶體使用率峰值
  • GC回收時間
  • 磁碟使用率(如有,一般無本地儲存)

MySQL

  • 分庫數量、分表數量、從庫個數、路由規則
  • QPS峰值、TPS峰值、讀寫比例
  • CPU使用率峰值
  • 磁碟使用率
  • 有無熱點、資料傾斜
  • 行總數
  • 主從複製/同步延遲ms
  • 慢查詢數量/秒
  • 長事務數量/秒

Redis

  • 例項個數、叢集方式
  • QPS峰值、TPS峰值、讀寫比例
  • CPU使用率峰值
  • 記憶體使用率峰值
  • key總數
  • 有無熱點例項、有無熱點key

HBase

  • 例項個數、region個數
  • CPU使用率峰值
  • 磁碟使用率
  • 行總數
  • compaction時間段
  • 有無熱點例項、有無資料傾斜

ElasticSearch

  • 例項個數、分片shard個數、路由規則
  • 文件document個數
  • CPU使用率峰值
  • 磁碟使用率
  • 有無熱點例項、有無資料傾斜

訊息佇列

  • 例項個數、分片partition個數
  • 訊息TPS峰值
  • 消費堆積數量
  • CPU使用率峰值
  • 訊息保留時長

業務指標

核心流程的業務指標

每個系統都不一樣,需要根據實際情況定義業務指標。如:

  • xxx成功率
  • xxx失敗率
  • xxx個數、次數
  • xxx時長
  • xxx參與人數
  • xxx金額

狀態機流轉情況

如圖所示,示例的狀態機流轉情況如下:

  • 流轉方向:只能從1流向2,不能從2流向1
  • 前置狀態:只能從2或3流向4,不能從1流向4
  • 中間態停留時長:2、3、4是中間狀態,不應當長時間停留,否則認為是卡住了
  • 終結狀態:5(成功)和6(失敗)是終結終態,最終都會變成5或6

因此,需要關心的業務指標如下:

  • 各狀態的個數
  • 成功率:成功終結狀態的比例
  • 整個流程的時長
  • 卡在中間態的個數、時長

相關文章