容量測試與容量規(guī)劃

在性能測試中涂屁,需要根據(jù)具體的性能需求和系統(tǒng)架構(gòu)等情況书在,采用不同的測試策略,其中最常見的策略就有容量測試拆又。

什么是容量 如何理解

容量定義

所謂容量儒旬,即系統(tǒng)處于最大負(fù)載狀態(tài)或某項(xiàng)指標(biāo)達(dá)到所能接受的最大閾值下對請求的最大處理能力栏账。

如何理解

  • 系統(tǒng)的容量(處理能力)是有限的;
  • 容量是可度量的栈源;

如何統(tǒng)計容量指標(biāo)

統(tǒng)計維度

  • 最大負(fù)載狀態(tài) 服務(wù)器CPU使用率達(dá)到100%
  • 內(nèi)存使用達(dá)到最大值
  • 磁盤IO延時超過所能接受的最大時延
  • 磁盤使用率超過最大限制
  • 網(wǎng)絡(luò)使用率達(dá)到上限(最大吞吐量)
  • 最大接受閾值 每秒請求數(shù)/事務(wù)數(shù)(QPS/TPS)
  • 響應(yīng)時間(ART/99%RT)
  • 事務(wù)成功率(一般要求99.99%甚至更高)
  • 超時/異常錯誤率
  • 配置參數(shù)挡爵,比如:最大連接數(shù)、最大線程數(shù)甚垦、JVM內(nèi)存分配上限

統(tǒng)計方法

  • 埋點(diǎn)采集:即在系統(tǒng)的各個節(jié)點(diǎn)茶鹃,根據(jù)需要添加埋點(diǎn),針對性的進(jìn)行數(shù)據(jù)采集艰亮。
  • 日志/數(shù)據(jù)庫:通過日志服務(wù)(比如ELK)或者運(yùn)維監(jiān)控(現(xiàn)在很流行的Devops)闭翩,采集分析數(shù)據(jù)。
  • Agent/探針:在需要采集的節(jié)點(diǎn)添加Agent/探針迄埃,實(shí)時采集疗韵,數(shù)據(jù)存入時序數(shù)據(jù)庫,實(shí)時展示调俘。

注意事項(xiàng)

  • 采集對比的數(shù)據(jù)一定要采集線上的真實(shí)數(shù)據(jù)伶棒,這樣才能反映真實(shí)客觀的系統(tǒng)壓力。
  • 如果是在測試環(huán)境彩库,配置一定要和線上保持一致(服務(wù)器數(shù)量可以不同肤无,但配置盡可能保持一致)

容量測試

容量測試是性能測試?yán)锏囊环N測試方法,它的目的就是測量系統(tǒng)的最大容量骇钦,為系統(tǒng)擴(kuò)容宛渐,性能優(yōu)化提供參考,節(jié)省成本投入眯搭,提高資源利用率窥翩。

測試思路

  • 根據(jù)具體的業(yè)務(wù)情況和系統(tǒng)架構(gòu),通過配置測試的手段鳞仙,測量得到單個服務(wù)節(jié)點(diǎn)在對應(yīng)的業(yè)務(wù)場景下最大的性能表現(xiàn)寇蚊。
  • 根據(jù)系統(tǒng)架構(gòu)(集群、分布式棍好、微服務(wù))特點(diǎn)仗岸,通過啟用≥2的服務(wù)節(jié)點(diǎn),來得到服務(wù)節(jié)點(diǎn)的增加和系統(tǒng)性能的提升比例借笙。
  • 通過線上采集的系統(tǒng)數(shù)據(jù)扒怖,分析出過去某段時間(或某個業(yè)務(wù))的高峰流量,然后通過計算业稼,得到容量擴(kuò)容盗痒,需要投入的實(shí)際服務(wù)數(shù)量。

約束 or 停止條件

  • 業(yè)務(wù)線相關(guān)人員必須到位低散,測試過程能促使我們更加理解業(yè)務(wù)形態(tài)俯邓,容易出現(xiàn)的問題可能就是未來的故障點(diǎn)骡楼。
  • 在測試過程中,只要限定的某項(xiàng)指標(biāo)達(dá)到最大可接受閾值或某項(xiàng)資源達(dá)到最大使用狀態(tài)看成,即刻停止測試君编。

選擇合適的容量指標(biāo)

考慮到業(yè)務(wù)需求和系統(tǒng)架構(gòu)的不同,在選取容量指標(biāo)時一般遵循如下原則:

  • 數(shù)據(jù)密集型:即并發(fā)請求量較大的類型川慌,一般TPS和RT是比較關(guān)注的指標(biāo)吃嘿。
  • 數(shù)據(jù)存儲型:即需要存儲讀寫的數(shù)據(jù)量較大的類型,一般吞吐量和IO是比較關(guān)注的指標(biāo)梦重。

容量規(guī)劃

為什么需要容量規(guī)劃

對于業(yè)務(wù)越來越復(fù)雜的商業(yè)形態(tài)兑燥,每個業(yè)務(wù)都由一系列不同的系統(tǒng)來提供服務(wù),每個業(yè)務(wù)系統(tǒng)都部署在不同的機(jī)器上琴拧。容量規(guī)劃的目的在于讓每一個業(yè)務(wù)系統(tǒng)能夠清晰地知道:

  • 什么時候應(yīng)該增加服務(wù)節(jié)點(diǎn)降瞳,什么時候應(yīng)該減少服務(wù)節(jié)點(diǎn)(比如服務(wù)端接受到的流量達(dá)到什么量級)(比如壓測,周年慶蚓胸,大促等)
  • 為了壓測挣饥,周年慶,大促等業(yè)務(wù)需求沛膳,需要擴(kuò)充到什么數(shù)量級的服務(wù)扔枫,才能即保證系統(tǒng)的可用性、穩(wěn)定性锹安,又能節(jié)約成本

容量規(guī)劃四步走

  • 業(yè)務(wù)流量預(yù)估階段:通過分析歷史數(shù)據(jù)以及實(shí)時的線上監(jiān)控短荐,預(yù)估未來某個時間點(diǎn)或者某個業(yè)務(wù)可能會有多少多少的流量沖擊;
  • 系統(tǒng)容量評估階段:根據(jù)具體的業(yè)務(wù)場景叹哭,分析每個業(yè)務(wù)場景的流量配比忍宋,然后計算每個業(yè)務(wù)大概需要多少服務(wù)節(jié)點(diǎn)來提供可靠穩(wěn)定的性能支撐;
  • 系統(tǒng)容量測試階段:通過全鏈路壓測或者PAT/UAT環(huán)境的壓測风罩,來模擬真實(shí)的業(yè)務(wù)場景糠排,確定每個服務(wù)節(jié)點(diǎn)的具體性能表現(xiàn),進(jìn)行針對性的調(diào)整超升;
  • 流量分配調(diào)整階段:根據(jù)壓測的結(jié)果入宦,設(shè)定限流、服務(wù)降級等系統(tǒng)保護(hù)措施廓俭,來預(yù)防當(dāng)實(shí)際流量超過系統(tǒng)所能承受的最大流量時云石,系統(tǒng)無法提供服務(wù)唉工;

擴(kuò)容手段

垂直擴(kuò)容

  • 升級服務(wù)的硬件配置研乒,讓單個服務(wù)節(jié)點(diǎn)的容量更大,來提供更高的系統(tǒng)服務(wù)能力淋硝。比如:加大CPU數(shù)量和內(nèi)存雹熬,更換性能更好的服務(wù)器宽菜,高性能SSD或者PCIE flash卡等。
  • 如果用容器竿报,可以啟用VPA铅乡,啟用更多的容器來滿足業(yè)務(wù)增長需求律秃,此場景下需要注意后端DB和緩存的連接數(shù)使用情況搔耕,并不是能無限擴(kuò)展的。

水平擴(kuò)展

  • 即增加服務(wù)節(jié)點(diǎn)的數(shù)量坡慌,讓可提供服務(wù)的服務(wù)變得更多芽世,來提升系統(tǒng)總體的服務(wù)能力挚赊。常見的方式有:
  • 服務(wù)集群:服務(wù)器的數(shù)量由1→N(但需要重點(diǎn)關(guān)注負(fù)載均衡);
  • 分布式:提供服務(wù)的節(jié)點(diǎn)由統(tǒng)一集中管理部署济瓢,分散到不同的地點(diǎn)荠割;
  • 容器:提供更靈活的彈性擴(kuò)容機(jī)制,根據(jù)具體的訪問流量大小來彈性擴(kuò)容或者縮容旺矾;

容量評估的步驟與方法

預(yù)估總訪問量

  • 最簡單的辦法就是:詢問業(yè)務(wù)方蔑鹦,詢問運(yùn)營同學(xué),詢問產(chǎn)品同學(xué)箕宙,看產(chǎn)品和運(yùn)營對此次活動的流量預(yù)估嚎朽。
  • 不過,業(yè)務(wù)方對于流量的預(yù)估扒吁,應(yīng)該就兩個指標(biāo)火鼻,pv 和 用戶訪問數(shù)。技術(shù)人員需要根據(jù)這兩個數(shù)據(jù)雕崩,計算其他相關(guān)指標(biāo)魁索,比如 QPS 等。

預(yù)估平均QPS

  • 總請求數(shù) = 總PV * 頁面衍生連接數(shù)

    平均QPS = 總請求數(shù) / 總時間

    比如:活動落地頁1小時內(nèi)的總訪問量是30w pv盼铁,該落地頁的衍生連接數(shù)為30 ,那么落地頁的平均QPS為 (30W30) /(6060) = 2500

預(yù)估峰值QPS

  • 系統(tǒng)容量規(guī)劃時粗蔚,不能只考慮平均QPS,而是要峰值QPS饶火,如何評估峰值QPS呢鹏控?
  • 這個要根據(jù)實(shí)際的業(yè)務(wù)評估,也可以通過以往一些活動的 pv 等數(shù)據(jù)進(jìn)行預(yù)估肤寝。
  • 一般情況当辐,峰值QPS大概是均值QPS的3-5倍,日均QPS為1000鲤看,于是評估出峰值QPS為5000缘揪。(舉例,根據(jù)實(shí)際情況和經(jīng)驗(yàn)來判斷)

預(yù)估系統(tǒng)、單機(jī)極限QPS

  • 這個性能指標(biāo)找筝,是服務(wù)器蹈垢,最基本的指標(biāo)之一,所以沒有其他的辦法袖裕,就是壓力測試曹抬。通過壓力測試,算出服務(wù)器的單機(jī)極限QPS 急鳄。

寫在最后

  • 需要注意的是谤民,以上都是計算單個服務(wù)器或是單個集群的容量,實(shí)際生產(chǎn)環(huán)境是由web, 消息隊(duì)列疾宏,緩存赖临,數(shù)據(jù)庫 等等一系列組成的復(fù)雜集群。
  • 在分布式系統(tǒng)中灾锯,任何環(huán)節(jié)出現(xiàn)瓶頸兢榨,都有可能導(dǎo)致雪崩效應(yīng),最后整個集群垮掉 顺饮。
  • 要了解規(guī)劃整個平臺的容量吵聪,就必須計算出每一個節(jié)點(diǎn)的容量,找出任何可能出現(xiàn)的瓶頸所在兼雄。
  • 墨菲定律一定會發(fā)生吟逝,只是時間問題。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末赦肋,一起剝皮案震驚了整個濱河市块攒,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌佃乘,老刑警劉巖囱井,帶你破解...
    沈念sama閱讀 221,635評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異趣避,居然都是意外死亡庞呕,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,543評論 3 399
  • 文/潘曉璐 我一進(jìn)店門程帕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來住练,“玉大人,你說我怎么就攤上這事愁拭〗补洌” “怎么了?”我有些...
    開封第一講書人閱讀 168,083評論 0 360
  • 文/不壞的土叔 我叫張陵岭埠,是天一觀的道長盏混。 經(jīng)常有香客問我顺呕,道長,這世上最難降的妖魔是什么括饶? 我笑而不...
    開封第一講書人閱讀 59,640評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮来涨,結(jié)果婚禮上图焰,老公的妹妹穿的比我還像新娘。我一直安慰自己蹦掐,他們只是感情好技羔,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,640評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著卧抗,像睡著了一般。 火紅的嫁衣襯著肌膚如雪社裆。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,262評論 1 308
  • 那天吕嘀,我揣著相機(jī)與錄音趁曼,去河邊找鬼彰阴。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的叨橱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,833評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼贩绕,長吁一口氣:“原來是場噩夢啊……” “哼馏鹤!你這毒婦竟也來了碍讨?” 一聲冷哼從身側(cè)響起琴许,我...
    開封第一講書人閱讀 39,736評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辩块,沒想到半個月后荆永,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體废亭,經(jīng)...
    沈念sama閱讀 46,280評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,369評論 3 340
  • 正文 我和宋清朗相戀三年具钥,在試婚紗的時候發(fā)現(xiàn)自己被綠了豆村。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,503評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡骂删,死狀恐怖掌动,靈堂內(nèi)的尸體忽然破棺而出四啰,到底是詐尸還是另有隱情,我是刑警寧澤粗恢,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布柑晒,位于F島的核電站,受9級特大地震影響眷射,放射性物質(zhì)發(fā)生泄漏匙赞。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,870評論 3 333
  • 文/蒙蒙 一凭迹、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧苦囱,春花似錦嗅绸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,340評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至羹铅,卻和暖如春蚀狰,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背职员。 一陣腳步聲響...
    開封第一講書人閱讀 33,460評論 1 272
  • 我被黑心中介騙來泰國打工麻蹋, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人焊切。 一個月前我還...
    沈念sama閱讀 48,909評論 3 376
  • 正文 我出身青樓扮授,卻偏偏與公主長得像,于是被迫代替她去往敵國和親专肪。 傳聞我的和親對象是個殘疾皇子刹勃,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,512評論 2 359

推薦閱讀更多精彩內(nèi)容