有測(cè)試驅(qū)動(dòng)的開發(fā)模式,目的在于確保業(yè)務(wù)層面功能是準(zhǔn)確的,每一次新增、修改等動(dòng)作確保都不會(huì)影響到現(xiàn)有功能。功能開發(fā)完成了,需要部署到線上,系統(tǒng)能夠承載多大的用戶量呢,這時(shí)候就需要借助于性能壓測(cè),也稱之為壓力測(cè)試,界定系統(tǒng)能夠承載具體容量上限,從容應(yīng)對(duì)業(yè)務(wù)的運(yùn)營(yíng)需要,擴(kuò)容或縮容,心中有底。
工欲善其事,必先利其器。掌握一種壓測(cè)工具,并切實(shí)應(yīng)用到實(shí)踐環(huán)境中,并以此不斷迭代,壓力測(cè)試驅(qū)動(dòng)推動(dòng)所開發(fā)后端應(yīng)用處理性能逐漸完善。
目前成熟的支持支持TCP、HTTP等連接通道的壓測(cè)工具不少,以前接觸過Apache JMeter,后面又接觸過Tsung,因?yàn)樵趯?shí)際環(huán)境下使用比較多,支持豐富的業(yè)務(wù)場(chǎng)景定義,并且可擴(kuò)展性強(qiáng),因此Tsung強(qiáng)力推薦之。
總之,Tsung是一款開源的高性能分布式壓力測(cè)試工具,支持可編程的情景化測(cè)試方案,要向發(fā)揮它的特性,依賴于人們的想象力和創(chuàng)造性。
軟件/系統(tǒng)架構(gòu)往往著眼于總體結(jié)構(gòu),這個(gè)可以是一個(gè)逐漸完善的過程。這種自我的不斷完善的驅(qū)動(dòng)往往來自于實(shí)踐、線上考驗(yàn)。而壓力測(cè)試可以提供一種推動(dòng),盡心盡力暴露著架構(gòu)在性能容量存在的一些不足和缺陷,促使著向著更好的方向發(fā)展。
系統(tǒng)的構(gòu)建依賴于具體參與執(zhí)行的人,就算是一群資深的工程師,業(yè)務(wù)上每一次功能的快速更迭、任何潛在局部修改都會(huì)導(dǎo)致影響、拖垮整體性能,這就是人們常說的 ”蝴蝶效應(yīng)“,牽一發(fā)而動(dòng)全身。
如何提早感知并且提早修復(fù),這就需要壓力測(cè)試的驅(qū)動(dòng),并且壓力測(cè)試應(yīng)該成為一個(gè)常規(guī)化的例行行為,日?;膭?dòng)作。在每一次修改之后,都要過一輪的壓測(cè)的碾壓之后,提供當(dāng)前后端應(yīng)用處理的性能、容量等具體指標(biāo),用于指導(dǎo)后續(xù)業(yè)務(wù)上線業(yè)務(wù)的開展。
在一般互聯(lián)網(wǎng)公司,一般線上程序修改后之后,需要經(jīng)過QA團(tuán)隊(duì)/部門全部功能回歸、校驗(yàn)之后才能夠上線,往往缺少壓測(cè)環(huán)節(jié),因?yàn)樗?她們并不保證系統(tǒng)處理性能和容量是否惡化,系統(tǒng)的性能建立在系統(tǒng)總體的功能上,如何避免在性能上出現(xiàn)”牽一發(fā)而動(dòng)全身“,建議有條件的QA同學(xué)/團(tuán)隊(duì)考慮增加性能壓測(cè)環(huán)節(jié),功能 + 性能雙重回歸,修改影響點(diǎn)清晰、透明化。
本系列筆記,基于tsung-1.6.0源碼基礎(chǔ)上分析,運(yùn)行環(huán)境為L(zhǎng)inux Centos 6。
筆記列表:
為了方便理解,一些用詞說明:
參與一個(gè)實(shí)時(shí)性交互強(qiáng)的項(xiàng)目,從一開始單機(jī)支撐不夠1萬用戶、平均請(qǐng)求響應(yīng)時(shí)間約900毫秒,到目前混合部署的單機(jī)支撐50萬用戶、平均響應(yīng)時(shí)間為16毫秒,這個(gè)過程中Tsung不斷的壓測(cè)推動(dòng)著架構(gòu)逐漸穩(wěn)定、系統(tǒng)承載容量、QPS優(yōu)化等完全達(dá)標(biāo)。這是一個(gè)壓力測(cè)試驅(qū)動(dòng)性能改進(jìn)的流程,每一步的改進(jìn)能夠得到正向反饋。
這一系列筆記,所談核心是Tsung,無論是認(rèn)知還是改進(jìn),最終都是為了理解利器的方方面面,方便著手于實(shí)踐環(huán)境中,壓測(cè)所帶來的能量能夠驅(qū)動(dòng)我們的程序/服務(wù)性能提升、穩(wěn)定運(yùn)行,進(jìn)而更好方便我們進(jìn)行容量規(guī)劃、線上部署等。
聯(lián)系客服