1.什么是容量?
容量是指一個系統可處理容納的最大能力,這個能力可以簡單理解為訪問量,即流量。如某個網站正常情況下可承載的流量是8000萬PV,超過了這個流量,用戶請求的處理將受到影響,如響應變慢,或者干脆返回空白頁。因此,8000萬PV的訪問量便是這個網站的容量。可見,網站的容量規划極其重要,如果因為容量不足而影響網站業務的話,對於互聯網公司來說,給公司帶來的損失很可能是很慘重的。對於一個公司來說,服務運維是保證業務穩定的核心,規划好服務的容量是保證業務穩定的前提。
2.為什么要做容量規划?
做運維工作的讀者都應該了解SLA(Service-Level Agreement),即服務等級協議,這是關於網絡服務供應商和客戶間的一份協議,其中定義了服務類型、服務質量和客戶付款等術語。
SLA等級分為1個9->90%,全年宕機時長36天12小時,3個9->99%,全年宕機時常8小時45分。一般情況下,公司服務器的總體資源利用率長期處在較低水平,CPU利用率都在20%左右,總的來看,我們有大量的計算資源和存儲資源閑置,造成巨大浪費,這也直接導致我們的服務成本偏高。
3.容量規划的對象?
無論您公司是什么業務,只要業務是用計算機來承載,必然可以用計算機的物理資源消耗量作為業務量的度量,這體現在處理器、硬盤、內存、網卡、網絡鏈接數等方面。業務量與計算機資源消耗量整體上是呈正比的。
(1)計算密集型(2)IO密集型包括網卡流量(3)數據密集型,吃內存
容量管理還可以節約人力,這體現在服務擴容方面。擴容就是在集群中增加結點,就意味着包括以下工作:
(1)服務環境部署;
(2)關聯模塊配置;
(3)同步定時任務;
(4)向數據中心注冊;
(5)向操作中心注冊;
(6)對內部系統的權限申請;
(7)代碼同步;
(8)數據同步;
(9)開啟服務;
(10)qa回歸測試;
(11)應用上線。
為減少盲目擴容時付出的人力成本,提前知道目前的系統還能支撐多久。比如在節假日時流量會增長,為保證服務穩定,只好按經驗添加機器。
總結,容量管理系統給我們帶來的收益如下。
(1)科學地評估系統所用的資源是否合理。
(2)科學地預測未來資源的增長,並進行合理的預算采購。
(3)運維人員以科學的方法對資源進行有效管理,這包括優化集群中結點機器數量,預知服務可承載的最大壓力,預知系統何時性能燃盡等。
4.容量的規划方法:
目前開源的監控系統有很多,如cacti、zabbix等,大多數監控系統都是以圖表方式展示監控指標
大多數監控系統都是基於SNMP(Simple Network Management Protocol),即簡單網絡管理協議。
但是以上這些還遠遠無法滿足我們日常監控的需求
比如 關鍵字的日志監控(error,warn等),端口監控,語義監控,結構體監控
如何測試自身系統的性能?
通過壓力測試LoadRun,Jmeter等(測試術語,壓力測試,UAT測試,自動化腳本測試,全鏈路測試,混合壓力測試)
如果目前流量是每天1200萬PV,各子系統的平均容量是40%,一般情況下為了系統穩定都不會把容量用盡(100%),都會預留20%左右的buffer,因此,認為80%便是極限利用率了。80%減去40%后還剩下40%,也就是說目前系統還能承受一倍的流量,也就是2400萬PV算是極限了。要是預估新的流量壓力是十倍的話,至少將原有系統的規模擴充為現在的5倍。
通過回歸方程規划容量?
相關關系
在回歸分析中很重要的一個概念就是相關關系,具有相關性的樣本是能夠得到理想公式的前提。
相關性在總體上來說就是一種相互依賴、相互制約的關系。這是在人類社會和自然界中都普遍存在的一種現象:一些事物的發展伴隨着另外一些事物的發展,當另外那些事物發展得很好時,這些事物也會有很好的發展,反之亦然
