容量規劃是個資源管理的命題,其目標是解答運行中的系統需要多少容量以及在什么時候需要這些容量的問題,更簡單的說法就是回答我們需要在什么時候加多少機器的問題。
容量規劃模型
容量水位是一種常用的容量規劃模型,其定義為:集群流量 / 集群性能 x 100%
容量水位模型把容量規劃問題轉化為兩個方面,即
1. 系統的能力(集群性能)是多少?通過線上壓測回答
2. 系統的負荷(集群流量)是多少?通過線上監控回答
通過預定義安全水位、加機器水位等水位線,當集群負荷達到特定水位線時采取相應的措施。
線上壓測
集群性能 = 單機性能 x 集群機器數
通過線上壓測可以得到單機性能,進行線上壓測前需要明確幾個問題
1. 用什么來描述系統的性能?TPS還是網絡流量,根據具體業務具體分析,關鍵是它能真正反映實際性能
2. 選取的性能指標能夠方便地監控嗎?
3. 用什么樣的標準來度量最大性能?比如CPU達到80%,響應時間超過1s
線上監控
根據選取的性能指標,監控當前系統的運行情況,記錄其變化趨勢
依賴容量
系統各個部分存在一定的依賴關系。從業務上理解,即最靠近用戶的入口調用會轉化為中間層和底層系統上的調用。
一定的用戶訪問模式,能夠得到其調用鏈路上的調用比例或依賴系數。故假設用戶訪問模式基本固定,我們只要設定(推廣活動前)前端系統的容量目標,就能推算出其依賴的中間層和底層系統的容量目標,從而進行所有依賴系統的容量規劃。
容量規劃是受到業務模式或訪問模式影響的,而這種影響是一直變化的,我們需要定期的修正這種變化,才能保證容量規劃結果的正確性。