隨著信息化系統(tǒng)的建設(shè)完整和市場(chǎng)的推廣競(jìng)爭(zhēng),性能慢慢變成衡量應(yīng)用是否可用、好用的關(guān)鍵衡量指標(biāo)之一。性能測(cè)試不同于功能測(cè)試、接口測(cè)試,性能更多關(guān)注于業(yè)務(wù)的響應(yīng)速度和應(yīng)用系統(tǒng)的整體處理能力上,當(dāng)性能指標(biāo)不符合與預(yù)期期望時(shí),用戶往往會(huì)直觀地反饋不好用。
這里用戶的“不好用”就是性能測(cè)試的核心重點(diǎn)。通過(guò)各種監(jiān)控手段采集相關(guān)性能數(shù)據(jù)后,基于業(yè)務(wù)分析在各鏈路上的耗時(shí)、判斷系統(tǒng)瓶頸是做性能測(cè)試、性能優(yōu)化分析必不可少的環(huán)節(jié)。但是在當(dāng)下這種靠個(gè)人能力或傳統(tǒng)安插Agent、日志等應(yīng)用性能監(jiān)控技術(shù)逐漸失效,已經(jīng)無(wú)法滿足用戶的性能需求以及越來(lái)越快的系統(tǒng)迭代速度。
尤以當(dāng)下企業(yè)全面轉(zhuǎn)向云計(jì)算,以容器、微服務(wù)架構(gòu)、DevOps為核心的云原生架構(gòu)成為降本提質(zhì)增效的最優(yōu)路徑背景下,大規(guī)模容器集群產(chǎn)生更大的業(yè)務(wù)負(fù)載能力、更高的流量突發(fā)能力。容器架構(gòu)的動(dòng)態(tài)變化,對(duì)性能監(jiān)控、分析的范圍影響也越來(lái)越大與不可預(yù)估。因此,如何在云原生時(shí)代下更好開(kāi)展質(zhì)量領(lǐng)域性能測(cè)試,是我們?yōu)槠髽I(yè)在市場(chǎng)上提供競(jìng)爭(zhēng)力的彈藥之一。
性能測(cè)試
說(shuō)到性能測(cè)試,大家的第一印象基本上都是這三個(gè)階段:
1)模擬用戶業(yè)務(wù)流程操作,通過(guò)錄制手段或腳本編輯生成性能測(cè)試腳本,對(duì)腳本進(jìn)行參數(shù)化、管理、思考時(shí)間、集合點(diǎn)設(shè)置完成整體性能腳本
2)模擬用戶負(fù)載行為,通過(guò)場(chǎng)景化進(jìn)行壓測(cè)的模型設(shè)置,選擇監(jiān)控指標(biāo)
3)分析測(cè)試數(shù)據(jù),通過(guò)工具自帶的整合分析功能或結(jié)合其他性能數(shù)據(jù)
那么我們做性能測(cè)試的目的在于什么呢?大多數(shù)同學(xué)剛開(kāi)始做性能測(cè)試的時(shí)候,都是做完性能腳本調(diào)試、設(shè)置完壓測(cè)模型、執(zhí)行完腳本,看下系統(tǒng)的CPU、內(nèi)存、吞吐量、事務(wù)TPS,在輸出一份測(cè)試報(bào)告就結(jié)束了。
這種流程和測(cè)試報(bào)告在過(guò)去10年前或許是可以接受的,這受限于當(dāng)初的技術(shù)架構(gòu)(單體、前后端)和監(jiān)控分析手段,但在當(dāng)下技術(shù)架構(gòu)、業(yè)務(wù)場(chǎng)景、用戶需求、研發(fā)模式、敏捷轉(zhuǎn)型、研發(fā)效能等諸多內(nèi)、外環(huán)境的變化,企業(yè)對(duì)性能測(cè)試的目的越來(lái)越多樣化、針對(duì)性。
常見(jiàn)性能測(cè)試目的一般包括:
1、確定系統(tǒng)的響應(yīng)時(shí)間:比如系統(tǒng)平均響應(yīng)時(shí)間≤3秒
2、確定系統(tǒng)的最大用戶數(shù):比如系統(tǒng)在100000個(gè)用戶下平均響應(yīng)時(shí)間≤4秒
3、確定系統(tǒng)的最佳配置:比如在Centos7、8C16G、500G配置下,某業(yè)務(wù)支持50000個(gè)用戶同時(shí)訪問(wèn),平均響應(yīng)時(shí)間≤1秒
傳統(tǒng)性能監(jiān)控的窘境
性能測(cè)試目的確定后,往往都是基于此目的去做性能壓測(cè)實(shí)施和監(jiān)控?cái)?shù)據(jù)分析,這里如何開(kāi)展壓測(cè)實(shí)施流程先不展開(kāi)介紹,我們主要就監(jiān)控?cái)?shù)據(jù)分析這部分大家比較少談的話題展開(kāi)。
1、傳統(tǒng)環(huán)境下性能監(jiān)控顆粒度較粗
傳統(tǒng)環(huán)境下系統(tǒng)的應(yīng)用都是需要通過(guò)物理層網(wǎng)絡(luò)設(shè)施進(jìn)行流量轉(zhuǎn)發(fā),因此傳統(tǒng)環(huán)境下,業(yè)務(wù)應(yīng)用流量都是通過(guò)利用網(wǎng)絡(luò)設(shè)備支持旁路流量鏡像的方式實(shí)現(xiàn)采集,比如在交換機(jī)設(shè)置端口鏡像或TAP轉(zhuǎn)發(fā)采集。
但采集到的流量數(shù)據(jù)無(wú)法和業(yè)務(wù)對(duì)應(yīng)起來(lái),基本都是系統(tǒng)資源上如CPU、內(nèi)存、吞吐量或者本身服務(wù)器(如Tomcat)自帶的指標(biāo)等數(shù)據(jù),無(wú)法分解到具體某個(gè)URL和業(yè)務(wù)上。
這些都導(dǎo)致傳統(tǒng)性能監(jiān)控更多是以監(jiān)控系統(tǒng)可用性為核心,不涉及具體業(yè)務(wù)。
2、技術(shù)架構(gòu)升級(jí)的性能監(jiān)控難點(diǎn)
過(guò)去在單體架構(gòu)、前后端分離、SOA架構(gòu)上都可以進(jìn)行物理層網(wǎng)絡(luò)設(shè)施流量采集,隨之信息化建設(shè)的發(fā)展,企業(yè)全面轉(zhuǎn)向云計(jì)算,微服務(wù)架構(gòu)、容器、DevOps大行其道。
開(kāi)發(fā)團(tuán)隊(duì)為了滿足業(yè)務(wù)調(diào)整更加迅速,在技術(shù)上大量使用微服務(wù)架構(gòu),將業(yè)務(wù)解耦,把過(guò)去大單體拆解到小的服務(wù),使其可以更加快速的發(fā)布投產(chǎn)。
運(yùn)維團(tuán)隊(duì)使用容器、DevOps技術(shù),讓代碼更快發(fā)布,對(duì)業(yè)務(wù)流量進(jìn)行實(shí)時(shí)監(jiān)控、業(yè)務(wù)資源動(dòng)態(tài)伸縮,更好的滿足業(yè)務(wù)運(yùn)營(yíng)需求。
而這些都導(dǎo)致業(yè)務(wù)解析顆粒度越來(lái)越細(xì),服務(wù)解耦越來(lái)越清晰,問(wèn)題定位需要越來(lái)越精準(zhǔn),尤其是在當(dāng)下技術(shù)上已經(jīng)不會(huì)出現(xiàn)較大功能問(wèn)題,更多在于不同技術(shù)架構(gòu)、業(yè)務(wù)依賴、基礎(chǔ)設(shè)施(網(wǎng)絡(luò)、云平臺(tái)、服務(wù)器)、服務(wù)配置、虛擬化技術(shù)的應(yīng)用編排,而這些都需要精準(zhǔn)的監(jiān)控來(lái)進(jìn)行分析。
3、業(yè)務(wù)性能需求常態(tài)化
得益于互聯(lián)網(wǎng)的飛速發(fā)展,各種技術(shù)的迭代使其能夠滿足越來(lái)越多的業(yè)務(wù)形態(tài),比如當(dāng)下最流行的直播、賽事轉(zhuǎn)播等,這些業(yè)務(wù)能夠讓我們身邊每個(gè)人都能隨時(shí)隨地的參與和訪問(wèn),都離不開(kāi)性能保障。
性能需求在14年還只是在大型電商活動(dòng)做秒殺、各種活動(dòng)的時(shí)候,12306剛開(kāi)始發(fā)售時(shí),也曾出現(xiàn)無(wú)數(shù)次出票服務(wù)不可用、系統(tǒng)響應(yīng)緩慢的問(wèn)題,當(dāng)時(shí)的性能需求還是被動(dòng)的或針對(duì)性的開(kāi)展的。而現(xiàn)在日常的生活?yuàn)蕵?lè)、出行交通、工作協(xié)同已經(jīng)是無(wú)時(shí)無(wú)刻不在開(kāi)展性能需求。
云原生時(shí)代性能監(jiān)控探針
面對(duì)傳統(tǒng)性能監(jiān)控的窘境,以及現(xiàn)階段技術(shù)上的框架推動(dòng)、敏捷開(kāi)發(fā)和自動(dòng)化監(jiān)控部署也對(duì)性能監(jiān)控發(fā)起了挑戰(zhàn)。
為了解決種種流量監(jiān)控的難點(diǎn),掌動(dòng)智能云網(wǎng)一體化性能保障平臺(tái)(XRunner)流量診斷探針,在面對(duì)復(fù)雜云環(huán)境下真正解決云流量采集、治理、回溯、輸出的實(shí)用性價(jià)值,真正幫助企業(yè)對(duì)云環(huán)境進(jìn)行無(wú)盲點(diǎn)、細(xì)粒度的監(jiān)控,保障性能監(jiān)控更加精準(zhǔn)和性能定位到業(yè)務(wù)級(jí)別。
1、異構(gòu)環(huán)境下流量采集部署
目前主流的開(kāi)源項(xiàng)目底座、國(guó)內(nèi)主流云廠商底環(huán)境、信創(chuàng)環(huán)境都支持云環(huán)境、宿主機(jī)、IDC機(jī)房部署、流量采集。
1)云環(huán)境支持
● 部署支持私有云、公有云、混合云環(huán)境
● 部署支持虛擬機(jī)部署,或預(yù)置在Docker
2)宿主機(jī)系統(tǒng)支持
● 對(duì)主流Centos7/8,Ubuntu20.0等相關(guān)發(fā)行版,都只需要一個(gè)版本、一個(gè)程序即可實(shí)現(xiàn)完美兼容
● 對(duì)主流虛擬化、容器化、云廠商(VMware、Kubernetes、Docker、OpenStack、阿里云、騰訊云、華為云等)支持
2、網(wǎng)絡(luò)接口、數(shù)據(jù)包捕獲
通過(guò)部署在私有云宿主機(jī),或公有云工作負(fù)載的操作系統(tǒng)層,可以實(shí)現(xiàn)對(duì):
● 全部網(wǎng)卡,特定網(wǎng)卡,IO捕獲
● 特定IP / IP:Port / Port / IP~IP / Subnet的數(shù)據(jù)包捕獲
● 并可以執(zhí)行BPF條件的Byte-Code數(shù)據(jù)包過(guò)濾捕獲
3、宿主機(jī)統(tǒng)信數(shù)據(jù)治理與輸出
對(duì)符合特征的流量進(jìn)行實(shí)時(shí)解析,可以實(shí)時(shí)輸出如下四種數(shù)據(jù)類型:
1、豐富的TCP/UDP的會(huì)話指標(biāo)
判斷網(wǎng)絡(luò)時(shí)延行為的主要依據(jù);可以實(shí)時(shí)的分析全部或特定網(wǎng)卡的TCP/UDP會(huì)話,并可以將分析結(jié)果,以UDP封裝JSON格式的數(shù)據(jù),實(shí)時(shí)轉(zhuǎn)發(fā)到外部的數(shù)據(jù)接收端;主要的通信指標(biāo)包括,聚合后的四元組信息,MAC,VXLAN/GRE編號(hào),以及全部標(biāo)志位信息等。
2、HTTP/URL的指標(biāo)和內(nèi)容,負(fù)載段的內(nèi)容
判斷各類應(yīng)用層風(fēng)險(xiǎn)的主要依據(jù),UniProbe可以實(shí)時(shí)分析HTTP/URL/XML等會(huì)話和負(fù)載內(nèi)容,并可以將其內(nèi)容和主要指標(biāo),以UDP封裝的JSON數(shù)據(jù),實(shí)時(shí)轉(zhuǎn)發(fā)到外部的數(shù)據(jù)接收端。
3、DB/SQL的指標(biāo)和內(nèi)容
判斷各類數(shù)據(jù)庫(kù)風(fēng)險(xiǎn)的主要依據(jù),UniProbe可以實(shí)時(shí)分析SQL會(huì)話內(nèi)容,并可以將其內(nèi)容和主要指標(biāo),以UDP封裝的JSON數(shù)據(jù),實(shí)時(shí)轉(zhuǎn)發(fā)到外部的數(shù)據(jù)接收端;支持的DB包括但不限于Oracle,MySQL,SQLserver等結(jié)構(gòu)化數(shù)據(jù)庫(kù)。
4、進(jìn)程信息
如上三類數(shù)據(jù)監(jiān)控功能,都可以與宿主機(jī)的進(jìn)程相關(guān)聯(lián),通過(guò)分析進(jìn)程的活躍程度(CPU/MEM用量),進(jìn)一步定位、分解性能風(fēng)險(xiǎn)。
收益與價(jià)值
通過(guò)云網(wǎng)一體化性能保障平臺(tái)(XRunner)的性能診斷探針的實(shí)施,能帶給企業(yè)如下價(jià)值體現(xiàn):
1、對(duì)復(fù)雜云環(huán)境下應(yīng)用的云流量進(jìn)行分析,做到云流量可視化,云網(wǎng)性能監(jiān)控,異常流量發(fā)現(xiàn)和分析
2、在多層虛擬化環(huán)境下從物理設(shè)備層、私有云、K8S容器云、lstio、業(yè)務(wù)層POD等多維度性能追蹤,識(shí)別分層次下綜合性能瓶頸,從而進(jìn)行性能定位和調(diào)優(yōu)
3、幫助客戶從用戶和業(yè)務(wù)視角分析和評(píng)估業(yè)務(wù)交易健康、后端應(yīng)用性能、混合基礎(chǔ)架構(gòu)支撐能力
4、幫助用戶基于統(tǒng)一平臺(tái),快速實(shí)現(xiàn)端到端業(yè)務(wù)交易追蹤、代碼級(jí)業(yè)務(wù)處理性能分析、業(yè)務(wù)故障、性能、多層虛擬化架構(gòu)和SDN云網(wǎng)性能的全棧問(wèn)題跟蹤與診斷等等。
免責(zé)聲明:市場(chǎng)有風(fēng)險(xiǎn),選擇需謹(jǐn)慎!此文僅供參考,不作買賣依據(jù)。
關(guān)鍵詞: