32壓力測(cè)試怎樣設(shè)計(jì)全鏈路平臺(tái)share_第1頁(yè)
32壓力測(cè)試怎樣設(shè)計(jì)全鏈路平臺(tái)share_第2頁(yè)
32壓力測(cè)試怎樣設(shè)計(jì)全鏈路平臺(tái)share_第3頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余1頁(yè)可下載查看

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、32-壓測(cè)試:怎樣設(shè)計(jì)路壓測(cè)試平臺(tái)?你好,我是。經(jīng)過(guò)兩節(jié)課的學(xué)習(xí),我們已經(jīng)搭建了服務(wù)端和客端的,通過(guò)的報(bào)表和些規(guī)則的設(shè)置,你可以實(shí)時(shí)地跟蹤和解決垂直系統(tǒng)中出現(xiàn)的問(wèn)題了。不過(guò),你不能掉以輕,因?yàn)橹荒馨l(fā)現(xiàn)前系統(tǒng)中已經(jīng)存在的問(wèn)題,對(duì)于未來(lái)可能發(fā)的性能問(wèn)題是能為的。旦你的系統(tǒng)流量有的增,如類似“雙”的流量,那么你在臨性能問(wèn)題時(shí)就可能會(huì)措。為了解決后顧之憂,你需要了解在流量增若倍的時(shí)候,系統(tǒng)的哪些組件或者服務(wù)會(huì)成為整體系統(tǒng)的瓶頸點(diǎn),這時(shí)你就需要做次路的壓測(cè)試。那么,什么是壓測(cè)試呢?要如何來(lái)做路的壓測(cè)呢?這兩個(gè)問(wèn)題就是本節(jié)課重點(diǎn)講解的內(nèi)容。什么是壓測(cè)試壓測(cè)試(簡(jiǎn)稱為壓測(cè))這個(gè)名詞,你在業(yè)界的中定聽(tīng)過(guò)很多次

2、,當(dāng)然了,你也可能在項(xiàng)的研發(fā)過(guò)程中做過(guò)壓測(cè)試,所以,對(duì)于你來(lái)說(shuō),壓測(cè)試并不陌。不過(guò),讓你回想下,是怎么做壓測(cè)試的?是不是像很多同學(xué)樣:先搭建套與正式環(huán)境功能相同的測(cè)試環(huán)境,并且導(dǎo)或者成批測(cè)試數(shù)據(jù),然后在另臺(tái)服務(wù)器,啟動(dòng)多個(gè)線程并發(fā)地調(diào)需要壓測(cè)的接(接的參數(shù)般也會(huì)設(shè)置成相同的,如,想要壓測(cè)獲取商品信息的接,那么壓測(cè)時(shí)會(huì)使同個(gè)商品ID)。最后,通過(guò)統(tǒng)計(jì)后,直接交差?志,或者查看測(cè)試環(huán)境的系統(tǒng),來(lái)最終壓測(cè)QPS是多少之這么做壓測(cè)試其實(shí)是不正確的,錯(cuò)誤之處主要有以下點(diǎn):1.先,做壓測(cè)試時(shí),最好使線上的數(shù)據(jù)和線上的環(huán)境,因?yàn)?,你法確定搭建的測(cè)試環(huán)境與正式環(huán)境的差異,是否會(huì)影響到壓測(cè)試的結(jié)果;2.其次,壓

3、測(cè)試時(shí)不能使模擬的請(qǐng)求,是要使線上的流量。你可以通過(guò)拷流量的式,把線上流量拷份到壓測(cè)試環(huán)境。因?yàn)槟M流量的較的影響。模型,和線上流量相差很,會(huì)對(duì)壓測(cè)試的結(jié)果產(chǎn)如,你在獲取商品信息的時(shí)候,線上的流量會(huì)獲取不同商品的數(shù)據(jù),這些商品的數(shù)據(jù)有中了緩存,有的沒(méi)有命中緩存。如果使同個(gè)商品ID來(lái)做壓測(cè)試,那么只有第次請(qǐng)求沒(méi)有命中緩存,在請(qǐng)求之后會(huì)將數(shù)據(jù)庫(kù)中的數(shù)據(jù)參考性了。到緩存,那么后續(xù)的請(qǐng)求就定會(huì)命中緩存了,那么這種壓測(cè)試的數(shù)據(jù)就不具備3.不要從臺(tái)服務(wù)器發(fā)起流量,這樣很容易達(dá)到這臺(tái)服務(wù)器性能瓶頸,從導(dǎo)致壓測(cè)試的QPS上不去,最終影響壓測(cè)試的結(jié)果。且,為了盡量真實(shí)地模擬請(qǐng)求,我們傾向于把流量產(chǎn)的,放在離更近

4、的位置,如放在CDN節(jié)點(diǎn)上。如果沒(méi)有這個(gè)條件,那么可以放在不同的機(jī)測(cè)試結(jié)果的真實(shí)性。,這樣可以盡量保證壓之所以有很多同學(xué)出現(xiàn)這個(gè)問(wèn)題,主要是對(duì)壓測(cè)試的概念沒(méi)有完全理解,以為只要是使多個(gè)線程并發(fā)的請(qǐng)求服務(wù)接,就算是對(duì)接進(jìn)壓測(cè)試了。那么究竟什么是壓測(cè)試呢?壓測(cè)試指的是,在并發(fā)流量下,進(jìn)的測(cè)試,測(cè)試員可以通過(guò)觀察系統(tǒng)在峰值負(fù)載下的表現(xiàn),從找到系統(tǒng)中存在的性能隱患。與樣,壓測(cè)試是種常的,發(fā)現(xiàn)系統(tǒng)中存在問(wèn)題的式,也是保障系統(tǒng)可性和穩(wěn)定性的重要段。在壓測(cè)試的過(guò)程中,我們不能只某個(gè)核模塊來(lái)做壓測(cè),需要將接層、所有后端服務(wù)、數(shù)據(jù)庫(kù)、緩存、消息隊(duì)列、中間件以及依賴的第三服務(wù)系統(tǒng)及其,壓測(cè)試的標(biāo)之中。因?yàn)?,旦的?/p>

5、增加,包含上述組件服務(wù)的整個(gè)鏈路都會(huì)受到不確定的流量的沖擊,因此,它們都需要依賴壓測(cè)試來(lái)發(fā)現(xiàn)可能存在的性能瓶頸,這種測(cè)”。整個(gè)調(diào)鏈路執(zhí)的壓測(cè)試也稱為“路壓由于在互聯(lián)項(xiàng)能迭代的速度很快,系統(tǒng)的復(fù)雜性也變得越來(lái)越,新增加的功能和代碼很可能會(huì)成為新的性能瓶頸點(diǎn)。也許半年前做壓測(cè)試時(shí),可以承擔(dān)每秒1000次請(qǐng)求,現(xiàn)在很可能就承擔(dān)每秒800次請(qǐng)求了。所以,壓測(cè)試應(yīng)該作為系統(tǒng)穩(wěn)定性保障的常規(guī)段,周期性地進(jìn)。但是,通常做次路壓測(cè)試。需要DBA、運(yùn)維、依賴服務(wù)、中間件架構(gòu)等多個(gè)團(tuán)隊(duì),起協(xié)調(diào)進(jìn),論是成本還是協(xié)調(diào)的成本都較。同時(shí),在壓測(cè)試的過(guò)程中,如果沒(méi)有很好的機(jī)制,那么還會(huì)對(duì)線上系統(tǒng)造成不利的影響。為了解決這些

6、問(wèn)題,我們需要搭建套動(dòng)化的臺(tái),來(lái)降低成本和險(xiǎn)。路壓測(cè)平如何搭建路壓測(cè)平臺(tái)搭建路壓測(cè)平臺(tái),主要有兩個(gè)關(guān)鍵點(diǎn)。點(diǎn)是流量的。由于壓測(cè)試是在正式環(huán)境進(jìn),所以需要區(qū)分壓測(cè)試流量和正式流量,這樣可以針對(duì)壓測(cè)試的流量做單獨(dú)的處理。另點(diǎn)是險(xiǎn)的。也就是,盡量避免壓測(cè)試對(duì)于正常的影響,因此,般來(lái)說(shuō)路壓測(cè)平臺(tái)需要包含以下個(gè)模塊:流量構(gòu)造和產(chǎn)模塊;壓測(cè)數(shù)據(jù)模塊;系統(tǒng)健康度檢查和壓測(cè)流量預(yù)模塊。整體壓測(cè)平臺(tái)的架構(gòu)圖可以是下這樣的:為了讓你能夠更清晰地了解每個(gè)模塊是如何實(shí)現(xiàn)的,便你來(lái)設(shè)計(jì)適合業(yè)務(wù)的對(duì)壓測(cè)平臺(tái)的每個(gè)模塊做更細(xì)致地介紹。先來(lái)看看壓測(cè)試的流量是如何產(chǎn)的。路壓測(cè)平臺(tái),我會(huì)壓測(cè)數(shù)據(jù)的產(chǎn)般來(lái)說(shuō),我們系統(tǒng)的流量是來(lái)于客

7、端的HP請(qǐng)求,所以,我們會(huì)考慮在系統(tǒng)峰期時(shí),將這些流量拷份,在經(jīng)過(guò)些流量的作之后(如過(guò)濾些效的請(qǐng)求),將數(shù)據(jù)在像是HBase、MongoDB這些NoSQL組件,或者亞遜S3這些云服務(wù)中,我們稱之為流量數(shù)據(jù)。這樣,當(dāng)我們要壓測(cè)的時(shí)候,就可以從這個(gè)中獲取數(shù)據(jù),將數(shù)據(jù)切分多份后下發(fā)到多個(gè)壓測(cè)節(jié)點(diǎn)上了,在這,強(qiáng)調(diào)個(gè),你需要特殊注意的點(diǎn)。先,我們可以使多種式來(lái)實(shí)現(xiàn)流量的拷。最簡(jiǎn)單的種式:直接拷負(fù)載均衡服務(wù)器的志,數(shù)據(jù)就以本的式寫(xiě)到流量數(shù)據(jù)中,但是這樣產(chǎn)的數(shù)據(jù)在發(fā)起壓測(cè)時(shí),需要寫(xiě)的腳本來(lái)志,會(huì)增加壓測(cè)時(shí)候的成本,不太建議使。另種式:通過(guò)些開(kāi)源的具來(lái)實(shí)現(xiàn)流量的拷。這,我推薦款輕型的流量拷具GoRelay,它

8、可以劫持本機(jī)某個(gè)端的流量,將它們?cè)诩?,傳送到流量?shù)據(jù)中。在壓測(cè)時(shí),你也可以使這個(gè)具進(jìn)的流量回放,這樣就可以實(shí)現(xiàn)對(duì)正式環(huán)境的壓測(cè)試了。其次,如上中提到的,我們?cè)谙掳l(fā)壓測(cè)流量時(shí),需要保證下發(fā)流量的節(jié)點(diǎn)與更加接近,起碼不能和服務(wù)部署節(jié)點(diǎn)在同個(gè)機(jī),這樣可以盡量保證壓測(cè)數(shù)據(jù)的真實(shí)性。另外,我們還需要對(duì)壓測(cè)流量染,也就是增加壓測(cè)標(biāo)記。在實(shí)際項(xiàng)中,我會(huì)在HP的請(qǐng)求頭中增加個(gè)標(biāo)記項(xiàng),如說(shuō)叫做is stress test,在流量拷之后,批量在請(qǐng)求中增加這個(gè)標(biāo)記項(xiàng),再寫(xiě)到數(shù)據(jù)流量中。數(shù)據(jù)如何將壓測(cè)流量拷下來(lái)的同時(shí),我們也需要考慮對(duì)系統(tǒng)做改造,以實(shí)現(xiàn)壓測(cè)流量和正式流量的就會(huì)盡量避免壓測(cè)對(duì)線上系統(tǒng)的影響,般來(lái)說(shuō),我

9、們需要做兩的事情。,這樣來(lái),數(shù)據(jù)的請(qǐng)求(般稱之為量),我們會(huì)某些不能壓測(cè)的服務(wù)或者組件,做Mock或者特殊的處理。舉個(gè)例。在業(yè)務(wù)開(kāi)發(fā)中,我們般會(huì)依據(jù)請(qǐng)求,的為,如,請(qǐng)求了某個(gè)商品的,我們會(huì)這個(gè)商品多了次瀏覽的為,這些為數(shù)據(jù)會(huì)寫(xiě)份單獨(dú)的數(shù)據(jù)志中,再傳輸給數(shù)據(jù)分析部,形成業(yè)務(wù)報(bào)表給到或者板做業(yè)務(wù)的分析決策。在壓測(cè)的時(shí)候,肯定會(huì)增加這些為數(shù)據(jù),如原本天商品的瀏覽為是億次,壓測(cè)之后變成了億次,這樣就會(huì)對(duì)業(yè)務(wù)報(bào)表產(chǎn)影響,影響后續(xù)的為做特殊處理,不再到數(shù)據(jù)志中。向的決策。因此,我們對(duì)于這些壓測(cè)產(chǎn)的再如,我們系統(tǒng)會(huì)依賴些推薦服務(wù),推薦些你可能感的商品,但是這些數(shù)據(jù)的展有個(gè)特點(diǎn)就是,展過(guò)的商品就不再會(huì)被推薦出

10、來(lái)。如果你的壓測(cè)流量經(jīng)過(guò)這些推薦服務(wù),量的商品就會(huì)被壓測(cè)流量請(qǐng)求到,線上的就再看到這些商品了,也就會(huì)影響推薦的效果。所以,我們需要Mock這些推薦服務(wù),讓不帶有壓測(cè)標(biāo)記的請(qǐng)求經(jīng)過(guò)推薦服務(wù),讓帶有壓測(cè)標(biāo)記的請(qǐng)求經(jīng)過(guò)Mock服務(wù)。搭建Mock服務(wù),你需要:這些Mock服務(wù)最好部署在真實(shí)服務(wù)所在的機(jī)房,這樣可以盡量模擬真實(shí)的服務(wù)部署結(jié)構(gòu),提壓測(cè)結(jié)果的真實(shí)性。另,寫(xiě)數(shù)據(jù)的請(qǐng)求(般稱之為上流量),我們會(huì)把壓測(cè)流量產(chǎn)的數(shù)據(jù),寫(xiě)到影庫(kù),也就是和線上數(shù)據(jù)建式:,完全的份系統(tǒng)中。不同的類型,我們會(huì)使不同的影庫(kù)的搭1.如果數(shù)據(jù)在MySQL中,我們可以在同個(gè)MySQL實(shí)例,不同的Schema中創(chuàng)建套和線上相同的庫(kù)表

11、結(jié)構(gòu),并且把線上的數(shù)據(jù)也導(dǎo)進(jìn)來(lái)。如果數(shù)據(jù)是放在Redis中,我們對(duì)壓測(cè)流量產(chǎn)的數(shù)據(jù),增加個(gè)統(tǒng)的前綴,2.3.在同份中。還有些數(shù)據(jù)會(huì)在Elasticsearch中,這部分?jǐn)?shù)據(jù),我們可以放在另外個(gè)單獨(dú)的索引表中。通過(guò)對(duì)量的特殊處理以及對(duì)上流量增加影庫(kù)的式,我們就可以實(shí)現(xiàn)壓測(cè)流量的了。壓測(cè)試如何實(shí)施在拷了線上流量和完成了對(duì)線上系統(tǒng)的改造之后,我們就可以進(jìn)壓測(cè)試的實(shí)施了。在此之前,般會(huì)設(shè)個(gè)壓測(cè)試的標(biāo),如說(shuō),整體系統(tǒng)的QPS需要達(dá)到每秒20萬(wàn)。不過(guò),在壓測(cè)時(shí),下把請(qǐng)求量增加到每秒20萬(wàn)次,是按照定的步(如每次壓測(cè)增加萬(wàn)QPS),逐漸地增加流量。在增加次流量之后,讓系統(tǒng)穩(wěn)定運(yùn)段時(shí)間,觀在性能上的表現(xiàn)。如果

12、發(fā)現(xiàn)依賴的服務(wù)或者組件出現(xiàn)了瓶頸,可以先減少壓測(cè)流量,如,回退到上次壓測(cè)的QPS,保證服務(wù)的穩(wěn)定,再此服務(wù)或者組件進(jìn)擴(kuò)容,然后再繼續(xù)增加流量壓測(cè)。為了能夠減少壓測(cè)試過(guò)程中,投成本,可以開(kāi)發(fā)個(gè)流量的組件,在這個(gè)組件中,預(yù)先設(shè)定些性能閾值。如,容器的CPU使率的閾值可以設(shè)定為60%70%;系統(tǒng)的平均響應(yīng)時(shí)間的上限可以設(shè)定為1秒;系統(tǒng)慢請(qǐng)求的例設(shè)置為1%等等。性能達(dá)到這個(gè)閾值之后,流量組件可以及時(shí)發(fā)現(xiàn),并且通知壓測(cè)流量下發(fā)組件減少壓測(cè)流量,并且給到開(kāi)發(fā)和運(yùn)維的同學(xué),開(kāi)發(fā)和運(yùn)維同學(xué)就迅速地排查性能瓶頸,在解決問(wèn)題或者擴(kuò)容之后再繼續(xù)執(zhí)壓測(cè)。業(yè)界關(guān)于路壓測(cè)平臺(tái)的探索有很多,些如阿、京東、美團(tuán)和都有了適合業(yè)

13、務(wù)的路壓測(cè)平臺(tái)。在我看來(lái),這些壓測(cè)平臺(tái)萬(wàn)變不離其宗,都是經(jīng)過(guò)流量拷、流量染、熔斷等步驟,與本課程中介紹的核思想都是相通的。因此,你在考慮研適合項(xiàng)的路壓測(cè)平臺(tái)時(shí),也可以遵循這個(gè)成套路。課程結(jié)本節(jié)課,我?guī)懔私饬俗鰤簻y(cè)試常的誤區(qū),以及動(dòng)化的的重點(diǎn)是:路壓測(cè)平臺(tái)的搭建過(guò)程,這你需要了解1.2.壓測(cè)試是種發(fā)現(xiàn)系統(tǒng)性能隱患的重要段,所以應(yīng)該盡量使正式的環(huán)境和數(shù)據(jù);對(duì)壓測(cè)的流量需要增加標(biāo)記,這樣就可以通過(guò)Mock第三依賴服務(wù)和影庫(kù)的式來(lái)實(shí)現(xiàn)壓測(cè)數(shù)據(jù)和正式數(shù)據(jù)的;3.壓測(cè)時(shí),應(yīng)該實(shí)時(shí)地對(duì)系統(tǒng)性能指標(biāo)做式環(huán)境產(chǎn)影響。和告警,及時(shí)地對(duì)出現(xiàn)瓶頸的或者服務(wù)擴(kuò)容,避免對(duì)正這套路的壓測(cè)試系統(tǒng)對(duì)于我們來(lái)說(shuō)有三的價(jià)值:其,

14、它可以幫助我們發(fā)現(xiàn)系統(tǒng)中可能出現(xiàn)的性能瓶頸,便我們提前準(zhǔn)備預(yù)案來(lái)應(yīng)對(duì);其次,它也可以為我們做容量評(píng)估,提供數(shù)據(jù)上的撐;最后,我們也可以在壓測(cè)的時(shí)候做預(yù)案演練,因?yàn)閴簻y(cè)般會(huì)安排在流量的低峰期進(jìn),這樣我們可以降級(jí)些服務(wù)來(lái)驗(yàn)證預(yù)案效果,并且可以盡量減少對(duì)線上的影響。所以,隨著你的系統(tǒng)流量的快速增,你也需要及時(shí)考慮搭建這么套路壓測(cè)平臺(tái),來(lái)保證你的系統(tǒng)的穩(wěn)定性。課思在實(shí)際的作中,你的系統(tǒng)的壓測(cè)試是如何進(jìn)的呢?在壓測(cè)試的過(guò)程中發(fā)現(xiàn)了哪些性能瓶頸點(diǎn)呢?歡迎在留區(qū)與我你的經(jīng)驗(yàn)。最后,感謝你的閱讀,如果這篇章讓你有所收獲,也歡迎你將它給的朋友。精選留:邊 2019-12-06 01:02:29我所在的團(tuán)隊(duì),因?yàn)闆](méi)有提供影庫(kù),所以直做不起來(lái)真正的路壓測(cè)。的很美好,就因?yàn)闆](méi)有,所有的東西都成了泡影。另外,業(yè)務(wù)系統(tǒng)對(duì)于系統(tǒng)改造持壓測(cè)也不持,這就造成法實(shí)施。所以前的路壓測(cè)都是固定的個(gè)賬號(hào),個(gè)商品。得到的結(jié)果度也有限 2贊你凈瞎說(shuō) 2019-12-06 10:33:03師,有個(gè)問(wèn)題想請(qǐng)教下,關(guān)于中說(shuō)的將壓測(cè)試產(chǎn)的數(shù)據(jù)寫(xiě)到影庫(kù),redis中的key前綴區(qū)分,這是需要改代碼做兼容嗎?我們現(xiàn)在的做法是代碼兼容,如,開(kāi)了mock之后,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論