久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線(xiàn)實(shí)戰(zhàn)洞察。

性能測(cè)試從入門(mén)到實(shí)踐:指標(biāo)、策略與Jmeter壓測(cè)全解析

性能測(cè)試從入門(mén)到實(shí)踐:指標(biāo)、策略與Jmeter壓測(cè)全解析 很多團(tuán)隊(duì)一提性能測(cè)試第一反應(yīng)就是“拿Jmeter壓一下接口看看響應(yīng)時(shí)間長(zhǎng)不長(zhǎng)、有沒(méi)有報(bào)錯(cuò)”。但真正經(jīng)歷過(guò)線(xiàn)上事故復(fù)盤(pán)的人會(huì)明白性能測(cè)試從來(lái)不是“壓一下看穩(wěn)不穩(wěn)”這么簡(jiǎn)單。它背后是一件需要策略、指標(biāo)體系和邊界條件支撐的系統(tǒng)工程。這篇內(nèi)容我想從“基礎(chǔ) 策略”兩個(gè)詞切入把性能測(cè)試的準(zhǔn)備邏輯、核心指標(biāo)、壓測(cè)策略和Jmeter實(shí)操串起來(lái)。無(wú)論你是剛接手性能測(cè)試的QA還是準(zhǔn)備性能測(cè)試面試的測(cè)試開(kāi)發(fā)這篇文章都值得當(dāng)成一份“查漏補(bǔ)缺清單”來(lái)用。1. 為什么很多人做性能測(cè)試都在“走過(guò)場(chǎng)” —— 先搞清測(cè)試的層級(jí)工作里常見(jiàn)的一種現(xiàn)象是領(lǐng)導(dǎo)說(shuō)“系統(tǒng)快上線(xiàn)了做一下性能測(cè)試”然后測(cè)試同學(xué)打開(kāi)Jmeter創(chuàng)建一個(gè)線(xiàn)程組100個(gè)線(xiàn)程循環(huán)5次跑完看一眼聚合報(bào)告平均響應(yīng)時(shí)間200ms錯(cuò)誤率0%發(fā)一封郵件說(shuō)“性能驗(yàn)證通過(guò)”。這個(gè)流程看起來(lái)很完整但本質(zhì)上只是把系統(tǒng)“壓了一遍”并沒(méi)有回答任何業(yè)務(wù)問(wèn)題。我在復(fù)盤(pán)項(xiàng)目時(shí)習(xí)慣先問(wèn)三個(gè)問(wèn)題這次性能測(cè)試是為了驗(yàn)證什么要在什么負(fù)載下驗(yàn)證驗(yàn)證通過(guò)的標(biāo)準(zhǔn)是什么如果這三個(gè)問(wèn)題答不出來(lái)那無(wú)論跑的腳本多復(fù)雜報(bào)告上的數(shù)字多好看對(duì)決策都沒(méi)有幫助。1.1 性能測(cè)試的三個(gè)層級(jí)驗(yàn)證、發(fā)現(xiàn)、預(yù)測(cè)按目的不同性能測(cè)試可以拆成三個(gè)層級(jí)。第一層是驗(yàn)證系統(tǒng)“當(dāng)前是否滿(mǎn)足預(yù)期”。這是最常見(jiàn)的訴求比如新功能上線(xiàn)前確認(rèn)在預(yù)估的日常峰值下系統(tǒng)能穩(wěn)定運(yùn)行錯(cuò)誤率控制在允許范圍之內(nèi)。這一層的關(guān)鍵詞是“達(dá)標(biāo)”指標(biāo)有明確的驗(yàn)收線(xiàn)適合用固定的業(yè)務(wù)模型去壓。第二層是發(fā)現(xiàn)系統(tǒng)“在什么條件下會(huì)出問(wèn)題”。這層不再追求“過(guò)不過(guò)”而是追求“找到拐點(diǎn)”。比如TPS從200漲到300時(shí)響應(yīng)時(shí)間突然從150ms飆到2s這個(gè)拐點(diǎn)在哪里是什么資源先耗盡連接池還是數(shù)據(jù)庫(kù)連接線(xiàn)程棧還是消息隊(duì)列積壓。這一層對(duì)測(cè)試設(shè)計(jì)的要求更高需要你有意去構(gòu)造邊界、超配甚至破壞性場(chǎng)景。第三層是預(yù)測(cè)系統(tǒng)“未來(lái)能不能扛得住”。這層通常配合容量規(guī)劃和擴(kuò)縮容來(lái)做比如雙11之前業(yè)務(wù)預(yù)估流量翻3倍那就要在壓測(cè)環(huán)境里模擬3倍的流量看系統(tǒng)需要擴(kuò)容多少臺(tái)機(jī)器數(shù)據(jù)庫(kù)是否需要讀寫(xiě)分離。這一層的產(chǎn)出不是一份“報(bào)告”而是一套“模型和預(yù)算”每臺(tái)機(jī)器的水位上限是多少加一臺(tái)機(jī)器能帶來(lái)多少TPS。很多團(tuán)隊(duì)所謂的性能測(cè)試只停留在第一層甚至第一層都做得不嚴(yán)謹(jǐn)——沒(méi)有明確的業(yè)務(wù)模型沒(méi)有驗(yàn)收閾值也沒(méi)有環(huán)境基線(xiàn)。這樣的結(jié)果對(duì)“能不能上線(xiàn)”沒(méi)有參考價(jià)值對(duì)“未來(lái)會(huì)不會(huì)出問(wèn)題”更沒(méi)有預(yù)判能力。所以動(dòng)手寫(xiě)腳本之前先確定你自己正在做哪一個(gè)層級(jí)這決定了后面所有策略的選型。1.2 性能測(cè)試與功能測(cè)試的本質(zhì)區(qū)別功能測(cè)試驗(yàn)證的是“對(duì)錯(cuò)”性能測(cè)試驗(yàn)證的是“快慢和穩(wěn)定”但這兩者在方法論上有很大的不同。功能測(cè)試的用例輸入輸出是確定的執(zhí)行一次就能得到明確結(jié)果性能測(cè)試是帶條件的統(tǒng)計(jì)實(shí)驗(yàn)需要在特定并發(fā)、特定數(shù)據(jù)量、特定持續(xù)時(shí)間的組合下才能得出有效結(jié)論。功能測(cè)試失敗了可以直接提單性能測(cè)試“失敗”則是一個(gè)漸進(jìn)過(guò)程——可能是響應(yīng)時(shí)間沒(méi)有達(dá)到SLO可能是錯(cuò)誤率超過(guò)閾值也可能是資源利用率已經(jīng)90%但TPS還在原地踏步。這種區(qū)別決定了性能測(cè)試必須先把“邊界條件”定義清楚。同樣一個(gè)接口數(shù)據(jù)庫(kù)有1萬(wàn)條數(shù)據(jù)和有1億條數(shù)據(jù)壓出來(lái)的結(jié)果完全不一樣同樣是200并發(fā)持續(xù)跑5分鐘和持續(xù)跑1小時(shí)對(duì)內(nèi)存泄漏的暴露能力也完全不同。所以性能測(cè)試?yán)镉幸痪淅显?huà)“沒(méi)有邊界條件的數(shù)字都是無(wú)效數(shù)字。” 這部分內(nèi)容后面講Jmeter參數(shù)設(shè)計(jì)時(shí)還會(huì)反復(fù)提到。2. 先把這些指標(biāo)吃透響應(yīng)時(shí)間、TPS、并發(fā)與資源水位性能測(cè)試看起來(lái)是在跟工具打交道實(shí)際上是在跟數(shù)字打交道。很多人剛開(kāi)始接觸性能測(cè)試時(shí)被一堆術(shù)語(yǔ)搞得頭暈其實(shí)核心指標(biāo)就那么幾個(gè)但它們之間的推導(dǎo)關(guān)系才是真正的重點(diǎn)。2.1 響應(yīng)時(shí)間與TPS一枚硬幣的兩面響應(yīng)時(shí)間Response TimeRT是一個(gè)請(qǐng)求從發(fā)出到收到響應(yīng)所經(jīng)歷的時(shí)間通??雌骄岛桶俜治恢怠F骄岛苋菀妆粯O端值拉高或稀釋所以生產(chǎn)環(huán)境更看重TP95、TP99甚至TP999。比如某個(gè)接口平均響應(yīng)時(shí)間是200ms但TP99是1.2s說(shuō)明有1%的請(qǐng)求體驗(yàn)非常差這種“大部分請(qǐng)求良好、少量請(qǐng)求緩慢”的分布是典型的尾部延遲問(wèn)題排查時(shí)需要關(guān)注GC停頓、線(xiàn)程排隊(duì)、網(wǎng)絡(luò)抖動(dòng)等因素。TPSTransactions Per Second每秒事務(wù)數(shù)衡量的是系統(tǒng)每秒能處理多少業(yè)務(wù)事務(wù)。響應(yīng)時(shí)間和TPS本質(zhì)上是一體兩面響應(yīng)時(shí)間決定單筆業(yè)務(wù)要占住系統(tǒng)資源多久TPS決定單位時(shí)間內(nèi)系統(tǒng)能釋放多少處理能力。如果一個(gè)請(qǐng)求平均耗時(shí)500ms單線(xiàn)程每秒最多處理2個(gè)請(qǐng)求想要每秒處理100個(gè)請(qǐng)求至少需要50個(gè)線(xiàn)程同時(shí)處理。這里先引入一個(gè)小公式系統(tǒng)并發(fā)處理能力并發(fā)線(xiàn)程數(shù)≈ TPS × 平均響應(yīng)時(shí)間。這也是業(yè)內(nèi)常說(shuō)的Little定律的一種工程化表達(dá)在一個(gè)穩(wěn)定的系統(tǒng)中正在處理的請(qǐng)求數(shù)等于是每秒新到的請(qǐng)求數(shù)乘以每個(gè)請(qǐng)求在系統(tǒng)里的停留時(shí)間。舉例來(lái)說(shuō)如果目標(biāo)是TPS500平均響應(yīng)時(shí)間0.2s那系統(tǒng)就需要能同時(shí)容納約500×0.2100個(gè)請(qǐng)求在處理中。這個(gè)數(shù)字直接決定你應(yīng)該把線(xiàn)程組壓到多少并發(fā)以及系統(tǒng)中的線(xiàn)程池、連接池配置是否夠用。2.2 在線(xiàn)用戶(hù)數(shù)、并發(fā)用戶(hù)數(shù)與Jmeter線(xiàn)程數(shù)的關(guān)系這是面試?yán)锔哳l出現(xiàn)、也是新手最容易混淆的一組概念。在線(xiàn)用戶(hù)數(shù)Online Users是所有登錄了系統(tǒng)、停留在頁(yè)面上的人數(shù)他們不一定在發(fā)請(qǐng)求。并發(fā)用戶(hù)數(shù)Concurrent Users是在同一時(shí)刻真正對(duì)服務(wù)器發(fā)起請(qǐng)求的用戶(hù)數(shù)。一般在線(xiàn)用戶(hù)數(shù)遠(yuǎn)大于并發(fā)用戶(hù)數(shù)。比如一個(gè)電商網(wǎng)站有10萬(wàn)人在線(xiàn)但真正同時(shí)下單、瀏覽商品、觸發(fā)接口的可能只有幾千人。那怎么估算并發(fā)用戶(hù)數(shù)一個(gè)簡(jiǎn)單經(jīng)驗(yàn)是并發(fā)用戶(hù)數(shù) ≈ 在線(xiàn)用戶(hù)數(shù) × 業(yè)務(wù)操作頻率 × 單次操作平均耗時(shí)。比如某系統(tǒng)高峰期在線(xiàn)用戶(hù)10000人平均每人每60秒觸發(fā)一次操作單次操作平均耗時(shí)1秒那并發(fā)用戶(hù)數(shù) ≈ 10000 × (1/60) × 1 ≈ 167。這里用到的其實(shí)是前面說(shuō)過(guò)的排隊(duì)論一分鐘觸發(fā)一次、每次處理1秒相當(dāng)于每分鐘需要占用10000×110000秒的處理時(shí)間均攤到60秒里每秒需要約167個(gè)并發(fā)單元。Jmeter里的“線(xiàn)程數(shù)”在絕大多數(shù)壓測(cè)腳本里就對(duì)應(yīng)并發(fā)用戶(hù)數(shù)即同一時(shí)刻施加到服務(wù)器上的壓力單元數(shù)。需要留意的是Jmeter每個(gè)線(xiàn)程是獨(dú)立發(fā)送請(qǐng)求的線(xiàn)程組里設(shè)置了200個(gè)線(xiàn)程就意味著Jmeter會(huì)創(chuàng)建200個(gè)線(xiàn)程同時(shí)往服務(wù)器打請(qǐng)求所以這里的數(shù)字不應(yīng)該是“在線(xiàn)用戶(hù)數(shù)”而應(yīng)該是你估算出來(lái)的“并發(fā)用戶(hù)數(shù)”。2.3 資源利用率CPU、內(nèi)存、磁盤(pán)與網(wǎng)絡(luò)的水位判斷接口層指標(biāo)只告訴你系統(tǒng)“快不快”資源水位才告訴你系統(tǒng)“撐不撐得住”。壓測(cè)過(guò)程中必須同步監(jiān)控應(yīng)用服務(wù)器、數(shù)據(jù)庫(kù)、緩存、消息隊(duì)列等組件的資源指標(biāo)否則你永遠(yuǎn)不知道瓶頸在哪一層。CPU如果CPU使用率長(zhǎng)期在90%以上說(shuō)明計(jì)算資源接近飽和。但要區(qū)分CPU是消耗在用戶(hù)態(tài)業(yè)務(wù)計(jì)算還是內(nèi)核態(tài)系統(tǒng)調(diào)用、鎖競(jìng)爭(zhēng)還要看是單核打滿(mǎn)還是整體均勻。單核打滿(mǎn)往往暗示代碼里有單點(diǎn)瓶頸比如某個(gè)熱點(diǎn)數(shù)據(jù)導(dǎo)致鎖競(jìng)爭(zhēng)激烈。內(nèi)存主要關(guān)注堆內(nèi)存使用情況、GC頻率和耗時(shí)、是否有內(nèi)存泄漏導(dǎo)致的應(yīng)用重啟。JVM類(lèi)應(yīng)用壓測(cè)時(shí)建議同時(shí)拉取堆轉(zhuǎn)儲(chǔ)和GC日志長(zhǎng)時(shí)間穩(wěn)定性測(cè)試?yán)锍霈F(xiàn)內(nèi)存持續(xù)漲、GC時(shí)間越來(lái)越長(zhǎng)基本可以判斷有對(duì)象沒(méi)有回收干凈。磁盤(pán)和網(wǎng)絡(luò)磁盤(pán)關(guān)注IO等待時(shí)間和隊(duì)列長(zhǎng)度網(wǎng)絡(luò)關(guān)注帶寬利用率和連接數(shù)。這兩個(gè)指標(biāo)常常被忽略但很多TPS上不去的場(chǎng)景最后查下來(lái)要么是磁盤(pán)IO排隊(duì)太長(zhǎng)要么是網(wǎng)絡(luò)出口帶寬被打滿(mǎn)前端的優(yōu)化做得再好也無(wú)濟(jì)于事。下表是我在壓測(cè)時(shí)常用的指標(biāo)關(guān)注清單基本是每個(gè)項(xiàng)目都會(huì)打開(kāi)監(jiān)控面板逐項(xiàng)確認(rèn)的。監(jiān)控對(duì)象關(guān)鍵指標(biāo)常見(jiàn)閾值參考含義應(yīng)用服務(wù)器CPU使用率、load averageCPU使用率70%~80%超過(guò)閾值說(shuō)明接近計(jì)算瓶頸應(yīng)用服務(wù)器內(nèi)存JVM堆內(nèi)存、GC時(shí)間GC暫停50ms堆占用無(wú)持續(xù)上漲判斷是否有內(nèi)存泄漏線(xiàn)程池活躍線(xiàn)程數(shù)、隊(duì)列長(zhǎng)度活躍線(xiàn)程池大小80%線(xiàn)程耗盡會(huì)導(dǎo)致請(qǐng)求排隊(duì)數(shù)據(jù)庫(kù)連接數(shù)、慢查詢(xún)數(shù)、IOPS慢查詢(xún)總查詢(xún)5%數(shù)據(jù)庫(kù)往往是瓶頸重災(zāi)區(qū)網(wǎng)絡(luò)帶寬利用率、TCP重傳率帶寬70%重傳率0.1%帶寬或網(wǎng)絡(luò)抖動(dòng)影響穩(wěn)定性中間件消息積壓數(shù)、消費(fèi)延遲積壓數(shù)穩(wěn)定不增長(zhǎng)消費(fèi)能力是否跟得上生產(chǎn)3. 策略的底層邏輯不同階段壓不同場(chǎng)景目標(biāo)和方法完全不同“策略”這個(gè)詞聽(tīng)起來(lái)很空但它直接決定了你要寫(xiě)什么樣的腳本、跑多長(zhǎng)時(shí)間、關(guān)注哪些指標(biāo)。我習(xí)慣把壓測(cè)策略分成五個(gè)基礎(chǔ)類(lèi)型實(shí)際執(zhí)行時(shí)往往是組合使用的。3.1 基準(zhǔn)測(cè)試先把單接口的“底數(shù)”摸出來(lái)基準(zhǔn)測(cè)試Benchmark Testing是所有后續(xù)工作的起點(diǎn)。它用極小的并發(fā)比如1個(gè)線(xiàn)程或少數(shù)幾個(gè)線(xiàn)程對(duì)單個(gè)接口進(jìn)行多次請(qǐng)求拿到該接口在無(wú)壓力競(jìng)爭(zhēng)下的平均響應(yīng)時(shí)間、TPS和錯(cuò)誤率。這個(gè)“底數(shù)”就像馬拉松運(yùn)動(dòng)員的個(gè)人最好成績(jī)后面做多少并發(fā)都是在跟這個(gè)基線(xiàn)對(duì)比看壓力上升后性能衰減了多少。基準(zhǔn)測(cè)試也是有學(xué)問(wèn)的不能隨便跑一遍就完事。第一要把網(wǎng)絡(luò)上的干擾抹掉客戶(hù)端和服務(wù)端最好在同機(jī)房或同網(wǎng)絡(luò)環(huán)境下避免公網(wǎng)抖動(dòng)影響數(shù)據(jù)。第二要多次取中位數(shù)比如跑5輪每輪跑1000次請(qǐng)求去掉異常波動(dòng)后再取結(jié)果。第三要記錄環(huán)境信息包括被測(cè)接口部署在什么規(guī)格的機(jī)器上、數(shù)據(jù)庫(kù)版本、JVM參數(shù)等否則這個(gè)“底數(shù)”換一個(gè)環(huán)境就完全不可比了。3.2 負(fù)載測(cè)試與壓力測(cè)試一個(gè)找“日常穩(wěn)不穩(wěn)”一個(gè)找“極限在哪里”負(fù)載測(cè)試Load Testing是在預(yù)估的業(yè)務(wù)負(fù)載附近進(jìn)行測(cè)試驗(yàn)證系統(tǒng)在日常流量、峰值流量下是否能達(dá)到預(yù)期性能指標(biāo)。負(fù)載測(cè)試的負(fù)載曲線(xiàn)通常比較平滑比如從50并發(fā)逐步上升到200并發(fā)每梯度維持5分鐘再上升觀(guān)察不同負(fù)載梯度下的TPS和響應(yīng)時(shí)間變化。壓力測(cè)試Stress Testing則是持續(xù)增加負(fù)載直到系統(tǒng)出現(xiàn)性能惡化、報(bào)錯(cuò)或資源耗盡找出系統(tǒng)能承受的最大壓力點(diǎn)。兩者最核心的區(qū)別負(fù)載測(cè)試關(guān)注“達(dá)到目標(biāo)是否穩(wěn)定”壓力測(cè)試關(guān)注“超過(guò)多少就撐不住”。在實(shí)際操作中我非常推薦先跑壓力測(cè)試再跑負(fù)載測(cè)試。原因是壓力測(cè)試能告訴你系統(tǒng)到底有幾斤幾兩你才知道設(shè)定的“負(fù)載目標(biāo)”合不合理。如果系統(tǒng)在300并發(fā)時(shí)TPS就到頂了你把負(fù)載目標(biāo)定成500并發(fā)本身就是違背客觀(guān)規(guī)律的。先探測(cè)到極限再在極限的70%-80%附近設(shè)定日常負(fù)載目標(biāo)這種“用事實(shí)定目標(biāo)”的方式比拍腦袋定目標(biāo)科學(xué)得多。3.3 穩(wěn)定性測(cè)試長(zhǎng)時(shí)間浸泡發(fā)現(xiàn)“慢病”很多系統(tǒng)短時(shí)間壓測(cè)毫無(wú)問(wèn)題一旦持續(xù)運(yùn)行數(shù)小時(shí)就出現(xiàn)性能衰退響應(yīng)時(shí)間緩慢上升內(nèi)存持續(xù)增長(zhǎng)連接數(shù)越積越多。這種問(wèn)題靠幾分鐘的負(fù)載測(cè)試根本發(fā)現(xiàn)不了所以穩(wěn)定性測(cè)試Soak Testing也叫耐久測(cè)試必不可少。穩(wěn)定性測(cè)試的做法是用接近生產(chǎn)峰值的負(fù)載通常取峰值TPS的70%-80%持續(xù)運(yùn)行8小時(shí)、24小時(shí)甚至72小時(shí)過(guò)程中持續(xù)監(jiān)控指標(biāo)曲線(xiàn)。重點(diǎn)關(guān)注兩類(lèi)信號(hào)一是指標(biāo)是否有“爬坡”趨勢(shì)比如平均響應(yīng)時(shí)間每隔兩小時(shí)漲一點(diǎn)那很可能是內(nèi)存泄漏或緩存失效策略有問(wèn)題二是有沒(méi)有周期性波動(dòng)比如每小時(shí)整點(diǎn)GC一次導(dǎo)致TPS驟降那要看定時(shí)任務(wù)是否跟業(yè)務(wù)高峰重疊。我在做穩(wěn)定性測(cè)試時(shí)有一個(gè)慣例每半小時(shí)記錄一次當(dāng)前JVM堆內(nèi)存、Full GC次數(shù)和響應(yīng)時(shí)間P99并畫(huà)成時(shí)間序列曲線(xiàn)。只要這三個(gè)指標(biāo)中有任何一個(gè)呈現(xiàn)單調(diào)遞增趨勢(shì)就立即停止測(cè)試、抓取堆轉(zhuǎn)儲(chǔ)和線(xiàn)程快照。因?yàn)檫@類(lèi)問(wèn)題拖得越久越難定位在線(xiàn)程和內(nèi)存都快耗盡時(shí)抓到的現(xiàn)場(chǎng)反而最有價(jià)值。3.4 容量測(cè)試為擴(kuò)容找到可復(fù)用的數(shù)學(xué)模型容量測(cè)試Capacity Testing和壓力測(cè)試容易混淆但目的完全不同。壓力測(cè)試是為了找到系統(tǒng)“現(xiàn)在能扛多少”容量測(cè)試是為了回答“未來(lái)扛不住的時(shí)候加多少資源才夠”。容量測(cè)試最常見(jiàn)的做法是在固定資源下測(cè)出一組“并發(fā)數(shù)-TPS-資源利用率”的對(duì)應(yīng)數(shù)據(jù)比如4臺(tái)應(yīng)用服務(wù)器在200并發(fā)時(shí)TPS為1000CPU為80%。然后橫向增加服務(wù)器數(shù)量再測(cè)同樣的并發(fā)和TPS數(shù)據(jù)。通過(guò)多組數(shù)據(jù)的對(duì)比你能得到“每增加一臺(tái)服務(wù)器大約帶來(lái)多少TPS增量”的邊際效應(yīng)。這個(gè)數(shù)字配合業(yè)務(wù)增長(zhǎng)預(yù)估才能得出有依據(jù)的擴(kuò)容規(guī)劃。這里要特別提醒容量測(cè)試的結(jié)論只對(duì)“測(cè)試當(dāng)時(shí)的環(huán)境模型”有效。如果你的壓測(cè)模型用的是緩存命中率90%的黃金數(shù)據(jù)那擴(kuò)容評(píng)估結(jié)果會(huì)整體偏樂(lè)觀(guān)生產(chǎn)環(huán)境一旦緩存命中率下降結(jié)論立刻失效。所以容量測(cè)試對(duì)數(shù)據(jù)分布的要求極高后面會(huì)有專(zhuān)門(mén)篇幅講數(shù)據(jù)造數(shù)。3.5 場(chǎng)景組裝不要只壓?jiǎn)谓涌谝獕骸皹I(yè)務(wù)模型”前面幾種策略講的都是“怎么壓”但還有一個(gè)常被忽略的問(wèn)題“壓什么”。很多團(tuán)隊(duì)性能測(cè)試只挑一兩個(gè)核心接口壓這在鏈路簡(jiǎn)單的系統(tǒng)里勉強(qiáng)可行但在業(yè)務(wù)復(fù)雜、服務(wù)依賴(lài)多的系統(tǒng)里遠(yuǎn)遠(yuǎn)不夠。正確的做法是構(gòu)造一個(gè)業(yè)務(wù)模型也就是一組模仿真實(shí)用戶(hù)行為的請(qǐng)求組合。比如電商場(chǎng)景里瀏覽商品、加入購(gòu)物車(chē)、提交訂單、支付這四個(gè)動(dòng)作的調(diào)用比例和并發(fā)權(quán)重是不一樣的。實(shí)際壓測(cè)時(shí)要用不同權(quán)重、不同并發(fā)、不同思考時(shí)間把這些接口混合在一起來(lái)壓才能模擬出真實(shí)流量對(duì)系統(tǒng)造成的壓力分布。業(yè)務(wù)模型的準(zhǔn)確性直接決定壓測(cè)結(jié)果的可信度。如果沒(méi)有線(xiàn)上監(jiān)控?cái)?shù)據(jù)可以從業(yè)務(wù)日志中統(tǒng)計(jì)各接口的調(diào)用量占比然后按比例折算進(jìn)腳本。有了線(xiàn)上數(shù)據(jù)之后再用流量錄制回放工具校準(zhǔn)模型。這是我做性能測(cè)試項(xiàng)目時(shí)最看重的環(huán)節(jié)腳本寫(xiě)得再花哨模型不準(zhǔn)一切都是白壓。4. Jmeter實(shí)操?gòu)牧愦畛鲆粋€(gè)“能回答問(wèn)題”的壓測(cè)任務(wù)工具層面Jmeter是目前團(tuán)隊(duì)使用門(mén)檻最低、生態(tài)最成熟的選擇。下面我按自己的實(shí)操路徑講一遍怎么從零搭出一個(gè)能真正回答業(yè)務(wù)問(wèn)題的Jmeter壓測(cè)任務(wù)。注意我這里不是簡(jiǎn)單列菜單而是把每一步背后的用意講清楚。4.1 腳本結(jié)構(gòu)線(xiàn)程組、取樣器與監(jiān)聽(tīng)器的分工Jmeter腳本最基礎(chǔ)的三個(gè)元素是線(xiàn)程組Thread Group、取樣器Sampler、監(jiān)聽(tīng)器Listener。線(xiàn)程組定義“壓力怎么施加”多少個(gè)線(xiàn)程虛擬用戶(hù)、多快啟動(dòng)Ramp-Up時(shí)間、執(zhí)行多久循環(huán)次數(shù)或持續(xù)時(shí)間。取樣器定義“壓力打在哪”HTTP請(qǐng)求的協(xié)議、域名、路徑、參數(shù)、請(qǐng)求頭等。監(jiān)聽(tīng)器定義“結(jié)果怎么收集”聚合報(bào)告、查看結(jié)果樹(shù)、后端監(jiān)聽(tīng)器等。搭建腳本有一個(gè)我堅(jiān)持的原則先用1個(gè)線(xiàn)程把請(qǐng)求調(diào)通再并發(fā)施壓。具體流程是創(chuàng)建線(xiàn)程組線(xiàn)程數(shù)設(shè)為1循環(huán)次數(shù)設(shè)為1創(chuàng)建一個(gè)HTTP請(qǐng)求填好協(xié)議、服務(wù)器、路徑、參數(shù)添加一個(gè)“查看結(jié)果樹(shù)”監(jiān)聽(tīng)器跑一次確認(rèn)響應(yīng)正常。這樣做的好處是先把“腳本正確性”和“業(yè)務(wù)可達(dá)性”問(wèn)題排掉避免后面大并發(fā)跑起來(lái)后發(fā)現(xiàn)是腳本參數(shù)寫(xiě)錯(cuò)了白白浪費(fèi)時(shí)間和資源。調(diào)通之后把監(jiān)聽(tīng)器里的“查看結(jié)果樹(shù)”禁用掉加上“聚合報(bào)告”因?yàn)椴榭唇Y(jié)果樹(shù)會(huì)保存每個(gè)請(qǐng)求的完整響應(yīng)數(shù)據(jù)并發(fā)一高就會(huì)把Jmeter自身內(nèi)存吃得非??煊绊懯憾诵阅??!熬酆蠄?bào)告”只保存統(tǒng)計(jì)結(jié)果內(nèi)存開(kāi)銷(xiāo)小得多。4.2 并發(fā)模型線(xiàn)程數(shù)、Ramp-Up時(shí)間與持續(xù)時(shí)長(zhǎng)的設(shè)定邏輯線(xiàn)程組里最關(guān)鍵的設(shè)置是三個(gè)參數(shù)Number of Threads線(xiàn)程數(shù)、Ramp-Up Period啟動(dòng)時(shí)間、Loop Count循環(huán)次數(shù)或者持續(xù)時(shí)間。線(xiàn)程數(shù)就對(duì)應(yīng)你前面估算的并發(fā)用戶(hù)數(shù)。比如業(yè)務(wù)模型算出峰值并發(fā)是200那線(xiàn)程數(shù)就設(shè)200。Ramp-Up Period是這200個(gè)線(xiàn)程在多長(zhǎng)時(shí)間內(nèi)全部啟動(dòng)完畢設(shè)定它主要是為了模擬真實(shí)用戶(hù)逐漸進(jìn)場(chǎng)的過(guò)程避免一上來(lái)就200并發(fā)瞬間把服務(wù)打懵。Ramp-Up的合理取值一般是“線(xiàn)程數(shù)/每秒增長(zhǎng)數(shù)”。如果你預(yù)期每秒增長(zhǎng)20個(gè)并發(fā)200個(gè)線(xiàn)程的Ramp-Up就是10秒。實(shí)際操作中我更推薦勾選“調(diào)度器”Scheduler用“持續(xù)時(shí)間”而不是“循環(huán)次數(shù)”來(lái)控制測(cè)試長(zhǎng)度。原因在于循環(huán)次數(shù)模式下每個(gè)線(xiàn)程執(zhí)行完指定次數(shù)的循環(huán)就結(jié)束了在高并發(fā)長(zhǎng)時(shí)間測(cè)試中部分線(xiàn)程可能已經(jīng)開(kāi)始結(jié)束導(dǎo)致實(shí)際并發(fā)逐步下降數(shù)據(jù)失真而持續(xù)時(shí)間模式下線(xiàn)程組會(huì)持續(xù)施壓到時(shí)間到為止并發(fā)模型更穩(wěn)定。關(guān)于并發(fā)數(shù)值行業(yè)內(nèi)有一個(gè)通用檢查邏輯壓測(cè)時(shí)觀(guān)察你設(shè)定的并發(fā)數(shù)是否真的在Jmeter端達(dá)到了。在線(xiàn)程組里把“平均活躍線(xiàn)程數(shù)”加進(jìn)去如果設(shè)置了200并發(fā)但實(shí)際活躍只有150那說(shuō)明有大量線(xiàn)程在等待同一個(gè)上游響應(yīng)此時(shí)TPS會(huì)偏低但瓶頸不一定在被測(cè)系統(tǒng)有可能是Jmeter施壓能力不夠也有可能是網(wǎng)絡(luò)連接數(shù)限制。這個(gè)細(xì)節(jié)很多人壓完都不看我得先提醒一下。4.3 斷言與結(jié)果采集不要只看“返回碼200”“響應(yīng)斷言”Response Assertion是用來(lái)判斷請(qǐng)求是否成功的但新手最容易踩的坑是只斷言HTTP狀態(tài)碼是否為200完全不看業(yè)務(wù)返回碼。真實(shí)業(yè)務(wù)里接口返回200但業(yè)務(wù)失敗的案例太常見(jiàn)了。比如用戶(hù)下單驗(yàn)證庫(kù)存時(shí)庫(kù)存不足系統(tǒng)返回HTTP 200和一個(gè)業(yè)務(wù)碼“5001”如果你只看狀態(tài)碼這個(gè)請(qǐng)求會(huì)被記為“成功”壓測(cè)結(jié)果會(huì)嚴(yán)重失真。我在所有壓測(cè)腳本里都會(huì)加斷言響應(yīng)文本必須包含業(yè)務(wù)成功標(biāo)志比如“status:0”或者“success:true”。這一步?jīng)Q定了錯(cuò)誤率指標(biāo)的可靠性。結(jié)果采集方面聚合報(bào)告足夠看基本數(shù)據(jù)但它只有最終統(tǒng)計(jì)缺少時(shí)間維度。想要看到“哪段時(shí)間TPS掉了”“哪個(gè)并發(fā)點(diǎn)開(kāi)始響應(yīng)時(shí)間暴漲”應(yīng)該使用“后端監(jiān)聽(tīng)器”Backend Listener把數(shù)據(jù)上報(bào)到InfluxDB再用Grafana展示趨勢(shì)圖。這樣得到的是一條曲線(xiàn)而不是孤零零的平均值定位問(wèn)題時(shí)價(jià)值完全不同。4.4 讓Jmeter跑得更穩(wěn)GUI只用來(lái)調(diào)試壓測(cè)必須命令行這是操作層面的硬規(guī)矩GUI模式下Jmeter本身會(huì)占用大量?jī)?nèi)存繪制曲線(xiàn)圖并發(fā)一高GUI進(jìn)程反而會(huì)先卡死或OOM導(dǎo)致施壓中斷。真實(shí)的線(xiàn)上壓測(cè)必須用命令行非GUI模式執(zhí)行。命令行執(zhí)行的標(biāo)準(zhǔn)姿勢(shì)是jmeter -n -t /path/to/test.jmx -l /path/to/result.jtl -e -o /path/to/html-report -j /path/to/jmeter.log參數(shù)含義-n表示非GUI運(yùn)行-t指定測(cè)試腳本-l指定結(jié)果文件-e和-o是生成HTML報(bào)告及輸出目錄。執(zhí)行完成后你會(huì)得到一個(gè)HTML報(bào)告目錄里面包含TPS曲線(xiàn)、響應(yīng)時(shí)間分布、錯(cuò)誤率等圖表。這個(gè)報(bào)告可以直接打包發(fā)給團(tuán)隊(duì)和上級(jí)比截一張GUI聚合報(bào)告的圖專(zhuān)業(yè)得多。還有一個(gè)容易忽略的問(wèn)題施壓機(jī)自身的文件句柄限制。壓測(cè)時(shí)Jmeter要建立大量TCP連接Linux默認(rèn)文件描述符數(shù)量常常不夠啟動(dòng)壓測(cè)之前先用ulimit -n看當(dāng)前限制建議調(diào)到65535以上。否則壓到一半報(bào)“Too many open files”你還會(huì)以為是系統(tǒng)出了問(wèn)題其實(shí)是施壓端先倒了。5. 壓測(cè)前必須想清楚的三個(gè)問(wèn)題也常被面試官翻牌子性能測(cè)試相關(guān)的面試題很多都集中在“邊界條件”和“方法論”上而不是工具操作。因?yàn)楣ぞ卟僮靼胩炀湍苌鲜址椒ㄕ搮s需要項(xiàng)目和思考的沉淀。下面這三個(gè)問(wèn)題既是做壓測(cè)需要提前定清楚的邊界也是面試?yán)锏母哳l問(wèn)點(diǎn)。5.1 壓測(cè)結(jié)果“達(dá)標(biāo)”的判斷標(biāo)準(zhǔn)是什么很多人被問(wèn)到“性能測(cè)試通過(guò)的標(biāo)準(zhǔn)是什么”時(shí)只能答出“響應(yīng)時(shí)間低于XXms錯(cuò)誤率低于XX%”。這個(gè)答案本身沒(méi)錯(cuò)但不夠完整。一個(gè)可執(zhí)行的驗(yàn)收標(biāo)準(zhǔn)至少要包含四個(gè)維度核心業(yè)務(wù)的響應(yīng)時(shí)間百分位值比如TP99、系統(tǒng)吞吐量TPS、錯(cuò)誤率閾值、資源水位上限比如CPU不持續(xù)高于80%。更關(guān)鍵的是這些閾值必須來(lái)自業(yè)務(wù)預(yù)期而不是拍腦袋。這里給大家一個(gè)可落地的推導(dǎo)方式先看歷史監(jiān)控?cái)?shù)據(jù)中業(yè)務(wù)的真實(shí)峰值TPS把壓測(cè)的目標(biāo)TPS定在峰值的1.5到2倍再倒推平均響應(yīng)時(shí)間需要多少。比如業(yè)務(wù)峰值是500 TPS目標(biāo)壓測(cè)TPS就是750-1000如果業(yè)務(wù)要求頁(yè)面在2秒內(nèi)加載完那接口的TP99至少要控制在1.5秒以?xún)?nèi)留下前端渲染和網(wǎng)絡(luò)傳輸?shù)挠嗔?。這樣定出來(lái)的標(biāo)準(zhǔn)上會(huì)、匯報(bào)時(shí)都有據(jù)可依。還有個(gè)細(xì)節(jié)容易被忽略壓測(cè)結(jié)果分為“環(huán)境驗(yàn)證”和“生產(chǎn)驗(yàn)證”。測(cè)試環(huán)境的結(jié)果只能說(shuō)明“當(dāng)前測(cè)試環(huán)境下系統(tǒng)的表現(xiàn)“要真正評(píng)估生產(chǎn)容量要么在生產(chǎn)環(huán)境做灰度壓測(cè)低峰期小流量要么做全鏈路壓測(cè)。很多故障是在生產(chǎn)環(huán)境壓測(cè)時(shí)才暴露的比如網(wǎng)絡(luò)帶寬限制、證書(shū)校驗(yàn)、網(wǎng)關(guān)超時(shí)配置等測(cè)試環(huán)境壓不出來(lái)的問(wèn)題。任何環(huán)境置換之后原來(lái)的數(shù)據(jù)結(jié)論都需要打問(wèn)號(hào)。5.2 測(cè)試數(shù)據(jù)和環(huán)境隔離怎么做數(shù)據(jù)是真的會(huì)騙人的。性能測(cè)試中如果數(shù)據(jù)量不夠數(shù)據(jù)庫(kù)索引可能全走內(nèi)存并發(fā)查詢(xún)毫秒級(jí)返回?cái)?shù)據(jù)量接近生產(chǎn)時(shí)索引要讀磁盤(pán)慢查詢(xún)就暴露了。所以壓測(cè)數(shù)據(jù)要達(dá)到生產(chǎn)規(guī)模的量級(jí)而且數(shù)據(jù)分布要與生產(chǎn)一致。簡(jiǎn)單說(shuō)生產(chǎn)表里商品有各種類(lèi)目、價(jià)格、狀態(tài)測(cè)試數(shù)據(jù)也要有類(lèi)似的分布比例不能讓熱門(mén)商品的緩存命中率高達(dá)99%否則容量估算會(huì)嚴(yán)重樂(lè)觀(guān)。做數(shù)據(jù)準(zhǔn)備時(shí)建議用生產(chǎn)脫敏數(shù)據(jù)導(dǎo)出一部分再通過(guò)存儲(chǔ)過(guò)程或腳本翻倍擴(kuò)充。比如生產(chǎn)庫(kù)有100萬(wàn)條訂單測(cè)試庫(kù)至少要準(zhǔn)備同樣量級(jí)的數(shù)據(jù)。同時(shí)要注意數(shù)據(jù)的“體感分布”有些新用戶(hù)、有些老用戶(hù)、有些商品熱銷(xiāo)、有些商品冷門(mén)這樣壓出來(lái)的索引選擇、緩存命中率才接近真實(shí)場(chǎng)景。環(huán)境隔離方面壓測(cè)一定要用獨(dú)立的數(shù)據(jù)庫(kù)或獨(dú)立的Schema避免壓測(cè)流量污染生產(chǎn)數(shù)據(jù)。尤其是寫(xiě)操作比較多的壓測(cè)必須確認(rèn)測(cè)試環(huán)境的消息隊(duì)列、緩存、對(duì)象存儲(chǔ)等中間件是獨(dú)立的并且下游服務(wù)允許接收壓測(cè)產(chǎn)生的垃圾數(shù)據(jù)。我之前遇到過(guò)壓測(cè)環(huán)境連了共享的Redis壓測(cè)結(jié)束忘了清理結(jié)果把緩存里的正式數(shù)據(jù)擠掉了導(dǎo)致線(xiàn)上短暫的緩存穿透這個(gè)教訓(xùn)成本相當(dāng)高。5.3 性能瓶頸定位的通用排查思路壓測(cè)發(fā)現(xiàn)TPS不達(dá)標(biāo)時(shí)常見(jiàn)的新手反應(yīng)是立刻去調(diào)Jmeter的并發(fā)數(shù)或者懷疑工具沒(méi)配好。但正確思路應(yīng)該是先定位瓶頸發(fā)生在哪一層。我個(gè)人常用的排查鏈路是這樣一個(gè)順序施壓端的問(wèn)題先排除再看鏈路中間件最后看數(shù)據(jù)庫(kù)和外部依賴(lài)。施壓端排查在聚合報(bào)告里看“發(fā)送字節(jié)數(shù)”和“接收字節(jié)數(shù)”如果TPS上不去的同時(shí)施壓機(jī)CPU/內(nèi)存已經(jīng)打滿(mǎn)那就要加施壓機(jī)或改分布式壓測(cè)而不是被測(cè)系統(tǒng)的鍋。中間件排查看網(wǎng)關(guān)、負(fù)載均衡、緩存、消息隊(duì)列的連接數(shù)和延時(shí)。比如Nginx的upstream_response_time變長(zhǎng)還是連接被拒Redis的命中率下降還是阻塞命令變多這些都會(huì)成為性能瓶頸而且它們往往被應(yīng)用層指標(biāo)掩蓋。應(yīng)用層排查抓線(xiàn)程狀況、GC日志、壓力高的接口調(diào)用鏈追蹤。一個(gè)很經(jīng)典的場(chǎng)景是TPS上不去但CPU很高先看是用戶(hù)態(tài)還是內(nèi)核態(tài)高用戶(hù)態(tài)高多半是業(yè)務(wù)代碼計(jì)算量大可以結(jié)合火焰圖定位熱點(diǎn)方法內(nèi)核態(tài)高多半是系統(tǒng)調(diào)用頻繁、鎖競(jìng)爭(zhēng)或者上下文切換過(guò)猛比如打印日志太頻繁、正則匹配、序列化都可能導(dǎo)致CPU徒增。數(shù)據(jù)庫(kù)排查確認(rèn)連接池是否打滿(mǎn)、慢查詢(xún)數(shù)量和最長(zhǎng)耗時(shí)、磁盤(pán)IO是否為瓶頸。數(shù)據(jù)庫(kù)的排查順序是連接數(shù) - 慢查詢(xún) - 鎖等待 - IO。這套鏈路看起來(lái)步驟多但實(shí)際執(zhí)行時(shí)根本不用每一步都排查。我的經(jīng)驗(yàn)是壓測(cè)過(guò)程中同時(shí)開(kāi)好四個(gè)維度的監(jiān)控面板一旦TPS曲線(xiàn)開(kāi)始拐頭先看CPU和數(shù)據(jù)庫(kù)慢查詢(xún)兩個(gè)面板80%以上的瓶頸都會(huì)在這兩個(gè)地方現(xiàn)形。6. 實(shí)戰(zhàn)中反復(fù)踩過(guò)的坑與我現(xiàn)在養(yǎng)成的習(xí)慣文章最后這一部分是我真正想分享的“教訓(xùn)集”。這些東西寫(xiě)不到官方文檔里但每一條都是真金白銀換來(lái)的。6.1 最容易翻車(chē)的五個(gè)細(xì)節(jié)第一壓測(cè)數(shù)據(jù)不可持續(xù)。用固定數(shù)據(jù)重復(fù)壓測(cè)數(shù)據(jù)庫(kù)的緩存會(huì)越跑越熱TPS呈現(xiàn)“越壓越快”的假象。我現(xiàn)在做壓測(cè)時(shí)會(huì)在腳本里增加一個(gè)“批量造數(shù)”的定時(shí)器或者在測(cè)試過(guò)程中間歇性更新熱點(diǎn)數(shù)據(jù)保證緩存命中率不因反復(fù)壓測(cè)而異常升高。第二忽略長(zhǎng)連接與短連接差異。生產(chǎn)環(huán)境客戶(hù)端一般復(fù)用連接池測(cè)試腳本如果每個(gè)請(qǐng)求都新建連接服務(wù)器要承擔(dān)大量TCP三次握手和四次揮手開(kāi)銷(xiāo)TPS會(huì)被低估。Jmeter里要正確使用HTTP默認(rèn)請(qǐng)求的“Keep-Alive”選項(xiàng)并且控制好并發(fā)線(xiàn)程與連接數(shù)的對(duì)應(yīng)關(guān)系。如果被測(cè)系統(tǒng)連接數(shù)有限制壓測(cè)時(shí)你要觀(guān)察連接是否被復(fù)用否則容易把連接數(shù)資源誤判成瓶頸。第三只看平均響應(yīng)時(shí)間。平均值是最容易欺騙人的指標(biāo)一個(gè)請(qǐng)求10秒、一個(gè)請(qǐng)求0.1秒平均下來(lái)才5秒看著還行可是那次10秒的請(qǐng)求用戶(hù)已經(jīng)流失了。壓測(cè)報(bào)告里至少要給TP90、TP95、TP99三檔百分位數(shù)據(jù)并針對(duì)標(biāo)準(zhǔn)偏差異常的場(chǎng)景做進(jìn)一步分析。第四壓測(cè)機(jī)沒(méi)有做分布式或多機(jī)聯(lián)合施壓。單臺(tái)Jmeter的施壓上限有限線(xiàn)程開(kāi)太多時(shí)施壓機(jī)自身的線(xiàn)程調(diào)度和內(nèi)存占用會(huì)干擾數(shù)據(jù)。通常單臺(tái)Jmeter維持在500-1000并發(fā)以?xún)?nèi)比較穩(wěn)妥超過(guò)這個(gè)量就采用分布式部署在控制機(jī)上把腳本分發(fā)到多臺(tái)施壓機(jī)并關(guān)閉每臺(tái)的GUI模式。第五沒(méi)有做數(shù)據(jù)清理和二次驗(yàn)證。性能測(cè)試結(jié)束后如果只跑一次就下了結(jié)論這是最不可信的。正確做法是正式壓測(cè)前先跑一遍預(yù)熱讓線(xiàn)程池、緩存、數(shù)據(jù)庫(kù)連接池全部進(jìn)入“穩(wěn)態(tài)”停頓幾分鐘確認(rèn)基線(xiàn)正常后再跑正式場(chǎng)景跑完一輪之后清理數(shù)據(jù)并重啟相關(guān)服務(wù)或恢復(fù)狀態(tài)再?gòu)?fù)跑一遍看兩輪數(shù)據(jù)是否能在合理誤差范圍內(nèi)吻合。只有能復(fù)現(xiàn)的數(shù)據(jù)才值得寫(xiě)進(jìn)報(bào)告。6.2 去向領(lǐng)導(dǎo)和業(yè)務(wù)方匯報(bào)時(shí)怎么讓數(shù)字有說(shuō)服力性能測(cè)試報(bào)告如果只寫(xiě)“壓測(cè)1000并發(fā)平均響應(yīng)時(shí)間150ms”決策者很難直觀(guān)判斷問(wèn)題嚴(yán)重程度。我習(xí)慣在報(bào)告的摘要頁(yè)直接擺三個(gè)東西一是壓測(cè)模型和邊界條件并發(fā)數(shù)、數(shù)據(jù)量、持續(xù)時(shí)長(zhǎng)、環(huán)境規(guī)格二是與線(xiàn)上真實(shí)流量基線(xiàn)的對(duì)比比如線(xiàn)上峰值TPS的倍數(shù)關(guān)系三是資源水位與瓶頸點(diǎn)列表。報(bào)告里還要明確列出“限制條件”比如“本次壓測(cè)未包含某第三方支付網(wǎng)關(guān)的外部依賴(lài)”避免未測(cè)的環(huán)節(jié)成為上線(xiàn)時(shí)甩鍋的理由。這個(gè)習(xí)慣在多次項(xiàng)目中幫了我和團(tuán)隊(duì)很大的忙因?yàn)樾阅軠y(cè)試本身是開(kāi)放系統(tǒng)下的有限驗(yàn)證沒(méi)有任何測(cè)試能覆蓋線(xiàn)上所有真實(shí)行為。說(shuō)清楚“測(cè)到了什么、沒(méi)測(cè)什么、為什么”比一個(gè)自信滿(mǎn)滿(mǎn)但邊界模糊的“通過(guò)”結(jié)論要重要得多。6.3 我現(xiàn)在做性能測(cè)試項(xiàng)目的固定動(dòng)作清單雖然每個(gè)項(xiàng)目的業(yè)務(wù)不同但我現(xiàn)在的執(zhí)行路徑基本穩(wěn)定了最后分享給大家作為參考第一步收集線(xiàn)上監(jiān)控?cái)?shù)據(jù)拉出各接口調(diào)用量占比、平均耗時(shí)、TP99、峰值TPS建模。第二步根據(jù)模型確定策略組合通常先做基準(zhǔn)測(cè)試和壓力測(cè)試找到極限再做負(fù)載測(cè)試和穩(wěn)定性測(cè)試驗(yàn)證目標(biāo)。第三步統(tǒng)一壓測(cè)環(huán)境數(shù)據(jù)庫(kù)恢復(fù)備份數(shù)據(jù)中間件隔離施壓機(jī)檢查資源限制和網(wǎng)絡(luò)帶寬。第四步編寫(xiě)Jmeter腳本先用單線(xiàn)程調(diào)通業(yè)務(wù)鏈路加上業(yè)務(wù)成功斷言配置后端監(jiān)聽(tīng)器。第五步預(yù)壓一次看實(shí)際并發(fā)是否達(dá)到預(yù)期施壓端資源是否充裕數(shù)據(jù)曲線(xiàn)是否符合業(yè)務(wù)模型。第六步正式壓測(cè)過(guò)程中同步監(jiān)控應(yīng)用、數(shù)據(jù)庫(kù)、緩存、網(wǎng)絡(luò)的資源指標(biāo)標(biāo)記關(guān)鍵拐點(diǎn)。第七步整理報(bào)告包含邊界條件、指標(biāo)曲線(xiàn)、瓶頸定位、優(yōu)化建議和可復(fù)現(xiàn)腳本。第八步壓測(cè)結(jié)束后的清理刪除測(cè)試數(shù)據(jù)、關(guān)閉壓測(cè)任務(wù)、釋放中間件資源避免影響測(cè)試環(huán)境后續(xù)使用。這個(gè)流程看起來(lái)有不少步驟但每一步的背后都對(duì)應(yīng)著真實(shí)踩過(guò)的坑。做性能測(cè)試最大的誤區(qū)是對(duì)著工具猛調(diào)參而真正的功夫全在“建模、定邊界、看曲線(xiàn)、定位瓶頸”這些看起來(lái)不暴力、卻最費(fèi)腦子的環(huán)節(jié)上。把這些基礎(chǔ)打扎實(shí)工具層面的東西自然就成了順手的事。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
天天综合网1| 中国东北熟女老太婆内谢| 超碰97玖玖爱| 九九色色| 免费一级特黄特色大片在线观看看| 中文字幕av片| 久久久久9999精品九九九| 天天爱天天操| 欧美视频边做饭边橾| 欧美色999| 91美女精品| 超碰99热中文字幕| 日韩高潮一区| 五月婷婷爱六月丁香色| 韩国黄片aaaa| 伊人网免费视频| 国产又黄又爽又刺激久久久久久| 亚洲熟女人妻中文字幕一区二区 | 男人精品天堂一区| 亚洲免费97免费| 五月丁香激情综合网| 亚洲国产一区二区入口| 亚洲国产精品无码AV久久| 91老熟女| 不卡一区二区日本视频| 久久精品欧美一区二区三区不卡| 屁股久久久久久久| 熟女人妻一区二区三区| 91精品人妻一品二品三品| 精品无码产区一区二| 亚洲高清内射| 青青操在线亚洲视频观看欧美在线 | 无码精品一区二区三区潘金莲| 欧美性爱18观看| 探花视频免费观看国产专区| 日韩一区二区精彩视频| 日本乱人伦片中文三区| 亚洲āv网址在线观看| 无人区高清电影免费观看一区二区三 www.qmcai2.com | 91精品黄在线观看| 99热这里只有精品8| av片在线观看免费播放| 国产日韩欧美三级片| 国产第25页在线观看| 黄色操人| av天堂精品久久| 不卡av在线中文字幕| 18禁的网站在线| 日本高清_区二区三区| 黄色一区二区秘书性感| 97人人干人人操| 日韩无码专区| av优播| 色女女女导航| 蜜桃臀一区二区三区久久| 蜜臀一二三| 午夜无码熟妇丰满人妻| 激情在线青青操| 色综91| a片自拍直播视频| 天天日天天插| 丝袜制服字幕在线| 小骚逼被操的爽不爽| 一本久久精品中文字| 日影院久久婷婷夜夜网| 久久久一区二区三区麻豆| 台湾佬大香蕉| 老子午夜伦不卡影院| 欧美日韩香蕉| 看日韩美女二区三区免费操逼视频 | 亚洲精品国产精品乱码不卡| 亚洲熟妇综合久久久久久| 精品国产99999| 日韩啪啪视频| 国产精品呦一区二区三区| 99热啪啪| 久久熟女嫩草成人片免费| 综合五月天| 一区二区三区免费视频入口| 久久久久久久久久久久久久久性生活视频 | 少妇天堂网络| 欧美三级偷拍| 国产日韩区| 九九热在线精品视频| 九九九综合精品| 亚洲乱熟女一区二区| 快灬快灬 一下爽蜜桃在线观看| 国产精品免费久久久久久久久久| 中文字幕aⅴ在线视频| 成人片在线播放| 欧美性生活内射| 一区二区三| 日韩AC| 天天香香欲综合| 97在线公开视频| 91久久九九精品国产综合| 久久久 国产精品| 美女大乳久久久久久久女人18| 国产中文字幕在线观看| 中国一级操逼视频| 欧美综合自拍亚洲综合图| 制度丝袜99| 男人的天堂在线有码| 99国产精品自在自在| 熟妇视频一区二区三区在线| 日韩精品99999| 少妇色综合| 91看黄片| 东北老女人的激情视频| jazzjazz国产精品麻豆| 91美腿丝袜在线观看| 久久精品综合| 久久99热这里只频精品6学生| 亚洲999综合| 免费αV在线视频| 丁香五月激情综合| 大黄片做爱的大的| 一级黄碟在线看| 密乳无码| 青青操视频在线| 亚洲国产成人福利在线观看| 今日头条成人一区二区三区四虎精品| 国产91福利小视频在线观看| 日本不卡三级网在线播放| 色区97| 天天天天干| 久久老熟女| 婷婷久久五月天| 综合色欧美| 久操大香蕉手机视频在线看| 97超碰欧美| 亚洲图片欧美91N| 久久精品国产亚洲粉嫩| 亚洲第一页色| 美国精品国产精品| 91AV天美在线视频| 综合色99| 日本三级A片网站com| 国产青视频| 91精品久久久| 激情文学亚洲| 日本曲间由美性生活片| 色欲三区| 超碰 欧美| caopeng97人妻| 日韩欧美tv一区二区在线观看| 国产又大又粗又长视频| 亚洲免费精品一区| 欧美麻豆成人同性GⅤ在线| 国产精品在线一区二区| 超碰97精品在线| 视频黄色国产一级| 大香蕉淫人| 九一综合精品视品av| 成人免费视瓶| 亚洲激情欧美色图 | 大香蕉人妻久久| 亚洲人在线成线成人| 精品人妻中文字幕4399| 中文?日韩?免费?精品| 亚洲色香| 91亚洲青青草原精品1区| 激情干在线| 99久久国产精品免费高潮| 日韩美女高潮喷水视频| 欧美性天天影视| 色嗨嗨在线| 日本一级真人黄色性爱视频| 密臀在线视频| 韩国嫰模上门援交视频| 青青草字幕AV| 97蜜桃综合| 日本中文字幕在线电影| 人人操人人摸人人看人人插| www.91视频网| 加勒比久久av| 九九九九九九综合| 久久亚洲欧美中文字幕国语| 干B网| 久久啊啊啊视频| 色综合91| 亚洲人妻AV| 国产精品婬乱一级毛片彝族| 日本熟女不卡视频| 91美女在线| 98超碰日本| 亚州色图狠狠干| 殴美牲| 5月婷婷6月六月丁香| 1级黄色夫妻对换性交免费看| 夜夜黄| 中文字幕乱偷人妻久久艾草网| 99青草| 性爱动态120秒| 精品性爱无码在线播放| 天天操综合网| 精品国产乱码久久久久久久久1 | 久久久999国产| 熟女久久| 亚洲中文sv| 人人妻人人色一区二区三区| 久久一二三四五六七八九区| 四虎AV在线播放| 亚洲男人天堂2| 少妇色综合| 亚洲 综合 第一页| 91亚洲狠狠色| 理论久久婷婷网8| 成人精品久久| 午夜天堂精品久久| 91爱综合| 三级网站超变态精品| 精品国产乱码久久久久久久久1 | 少妇一级婬片免费放一级a性色.| 日韩精品国模| 97超碰国产亚洲精品资源| 国产乱青青草久久| 日本一久是| 超碰午夜| 91痴汉| 国产一| 亚洲男人天堂2| 4tube欧美女厕所| 情趣丝袜无码操逼视频| 国产精品免费1区2区视频| 亚洲一级黄色毛片| 亚洲黄色a级片| 欧美日韩在线国产在线| 久久久久九九九| 五月婷视频| 91久久国产综合久久| 亚洲色欲一区二区三区| 啊啊啊啊啊啊啊在线| 少妇九九九九| 久久九色| 欧美精品久久久久久久久88| 色婷婷丁香五月| yirendaxiangjiashipin| 久久免费精品96| 亚洲双插| 日韩精品国产一区二区| 久久精品色欧美aⅴ一区二区| 丁香五月天社区| 丝袜喷水在线| 人人澡人人干| 欧美黄片免费在线观看视频| 激情久久久| 国产精品久久久视频| 青草视频人妻在线观看| 极品另类| 操狠狠| 久久久久网站-538在线视频-欧美永久乱码 | 偷拍盗拍亚洲色图图片| 国产亚洲精品久久久久小| 亚洲强奸乱伦影视网| 欧美色棕合| 欧美日韩青操| 99老司机精品视频在线观看| 91一区二区| ...日韩成人一区二区三区字幕| 中国和日本人色哪个不下载能放| 自拍偷拍草一草| 99爱爱| 久9久精品视频| 97这里有精品| 亚洲一本色道中文无码aV天美| 亚洲欧美一区二区三区在钱蜜桃| 色九九九九九九| 国产Av超碰| 精品视频123区小说区| 天天影视91看看| 国产一级内射无挡观看| 国产综合久久久鬼色| 久久久啊啊啊| 静品嫩模一区二区| 中文字幕诱惑制服人妻丝袜美丝袜美 | 91人妻人人澡人人爽人人精品| 日本中文字幕在线电影| 精品制服美女中文一区二区三区| 久久久久成人亚洲国产| 亚洲天堂日本| ..日韩av毛片精品久久久| 人人乐大香蕉| 999精品久久久久久久| 国产三区免费在线观看| 综合欧美日韩在线| www…国产操逼| 91精产一区二区三区| 沈阳熟女高潮对白视频| 亚洲日韩肥臀视频在线观看| 夜色综合| 欧美性特| 肉动漫无遮挡h在线观看| 国产久久一区二区午夜| 曰韩人妻中文字幕在线| 麻豆精品久久久久久久| {男男暴菊gay无套网站| 久久久穴999| 亚洲春色一区二区三区| 亚洲熟妇丝袜在线观看| 手机午夜电影神马久久| 二对二中文字幕。| 国产人妖视频一区在线观看| 欧美 亚洲 综合 制服 另类| 九九RE视频在线精品| 久久老熟女| 五月综合久久| 先锋色眉乱伦资源| 91亚洲黄色网| 亚州少妇| 国产精品视频自拍在线| 青草地一本线一区二区三区| 五月婷婷影院| 中文字幕国产| 国产隔壁老王影院在线| 久久m| 精品伊人久久久大香线蕉小说| 欧美色综合图片| 欧美啪啪女女| 人人操 欧美| 无码人妻系列少妇| 亚州情色j区| ji熟女.com| 人妻美腿丝袜日韩| AV色天香在线| 男男H黄动漫啪啪无遮挡网站| 日本熟妇自慰性高潮一区二区三区| 亚洲成?V人片在线观看福利| 五月亭亭六月丁香| 日本精品久久久久久久| 992这里有精品| 日本 色 导航| 美女91网站| 欧美伦乱爱| 日本3级一区二区免费| 福利视频香蕉免费一区二区在线| 欧美日韩中国x| 国产suv精品一区二区四区999| 艹精品| 欧美高清色| 大香蕉在线视频重口味毛片在线| 九九aV| 翔田千里AⅤHD无码| 亚洲国产精品久久久久婷婷老年| 欧美制服另类丝袜| 九九色影院| 国产精品成人久久一区二区三区| 精品69网| 亚洲美女精品九九视频| 制服诱惑亚洲一区二区三区在线观看| 欧日韩不卡视.频| 日韩一级特黄av毛片| 91日韩| 黑人精品欧美一区二区蜜桃| 人妻人妻天天碰| 国产女人高潮视频| 伊人久久婷婷| 国产小视频91| 综合操逼| 操迟操逼在巾线Fre看| 国产精品乱码久久久久| 青青草原av| 九九九九97| 亚洲永久AV无码精品秋霞| 99久久婷婷国产综合精品草原| 国产隔壁老王影院在线| 亚洲欧美第一页| 精品人妻一区二区三区四区| 少妇蹲下买菜露大唇0| 久噜噜| 国产视频一区二区三区久久亚洲天堂| 久久色人体 | 欧美综合色| 日本成人A片网站| 最新亚洲黄色免费电影 | 偷窥自拍亚洲色图| 插入综合网| 男人天堂久久精品| 色月天AV导航| 九一屌逼| 老汉网| 大香蕉一人在线| 久久亚洲熟妇在线视频| 91性高| 国产精品久久久久久久久久久久久久久久 | 一道α片欧美| 国产日韩区| 99re国产精品视频| 欧美午夜一区二区三区| 黄色毛片A片| 欧美日韩中文亚洲v在线综合| 精品成人动漫一区二区| 操比国产| 猛交交| 亚洲不卡不卡中文字幕不卡| 日韩二三区| 精品人妻一区二区三区夜夜| 欧美最大综合网| 91麻豆天美国产欧美高潮| 伊人97| 欧美99999| 你懂的在线观看区国产 | 青娱乐蜜桃臀AV色婷| 9久久美女首页| 欧美熟女丝袜| 亚洲影视综合| 激情无码日韩| 99热精品免费| 91爰爱欧美| 9九九国产| 超碰九7| 97在线精品观看视频| 欧美视频一区二区在线| 久久一二三四五六七八九区区区| 丝袜性亚洲| 十八禁电影伊人网| 84YTCOM性无码| 91精品国产日韩欧美综合| 亚洲日本韩国在线| 97资源欧美| 91久热| 操操操五月天婷婷丁香影院| 干婷婷综合网| 蜜臀精品1区2区| 久久是精品| 色婷婷国产精品一区在线观看| 国产精品美女在线一区| 亚洲色吧网| 激情小说亚洲图片| 91在线精品一区二区三区| 亚洲97久久精品亚洲| 理论久久婷婷网 8| 亚洲囯产精品女人久久久| 97精品综合| 夜夜福利| 精品无码久久久久久久杏吧| 91人妻Pr| 极品色电影院| 国产在线视频二区| 日韩欧美女优电影| 国产精品69久久久久久久| 精品国产三级av韩国在线| 日韩免费性爱视频在线观看| 国产日韩人人| 日韩一区二区精彩视频| 中文字幕啊啊啊在线观看视频| 中文字幕第23区| 成年人网站在线免费观看| 99热在线观看| 蜜臀网址在线| 中文字幕123| 另类图片亚洲加勒比另类图片亚洲加勒比另类图片亚洲加勒比 | 日本A级视频| 久久大黄片| 九九亚洲| 在线视频资源| 激情色播| 婷婷国产精品一区二区| 激情五月天社区| 97超碰免费生活| 色就色综合| 在线观看A啊啊啊| 丁香五六月啪啪| 一二三啪啪专区| 3PAV乱伦视频| 亚洲熟女乱熟乱熟妇综合网二区| 欧州一区二区三区四区| 中文字幕乱碼在线| 久久久久亚洲AV无码专区少妇| 日韩精品三区四区| 欧美一级美片在线观看免费| 97人人中文网| 26uuu欧美日韩| 啊啊啊啊啊啊啊啊啊啊在线观看| 黄色av网站在线播放| 熟妇艹鸡八| 激情抓乳插进去啪啪啪日韩| 裸体1区| 国产精品嫩草影院免费| 欧美爱国产综合、| 午夜天堂精品久久久久91| 久久这里只有精品9| 亚州精人品大香蕉| 91P0RNY大屁股人妻| 97超碰热线| 伊人久久大香线蕉无码| 黑白配性爱AV成| 色色五月婷婷| 青青操网| 在线情色电影 91大| 欧美日韩国产中文精品字幕自在自线| av天堂加勒比| 久久e6只有精品| 国产精品久久久久无码A√| 97操综合| 日本熟妇熟色97一本在线观看| 日本人妻最新在线中| 久久久久久久久久久999| 亚洲砖码砖专无区2023| 国产极品馒头逼| 色噜噜人妻丝袜AV资源| 乱伦系列一区二区| 亚洲网站一区二区在线| 99热国产精品| 人妻精品综合中文字幕在线 | 国产亚洲精品A在线观看下载| 大乔未久88一区| 婷婷五月天AV| 高清国产成人无码| 综合网 欧美| 九九热精彩视频| 亚洲天堂中文字幕无码男同| 精品无码不卡视频| 色香综合| 久久久成人免费av电影| 又黄又粗又硬又长又大| 欧美日韩国产在线| 免费观看的黄色的网站| 人人操人人93| 亚洲高潮影院| 欧美亚洲厕所精品偷拍91 | 夫妻日逼| 亚州图片第一页| 成人无码专区精品视频| 日韩高潮一区| 亚洲最大网站av| 久久久一区二区三区三州| 91N综合网| 裸体美女久久久| 久久久不能久久久久| 国模精品一区二区三区苹果色戒 | 日本精品一区三区| 丁香五月激情综合国产| 激情抓乳插进去啪啪啪日韩 | 婷婷久久五月天| 国产亚洲精品av一区| 免费观看日本操逼视频| 色香av| 91黄射| 超碰视97中文| 天天色怡春院| 欧美色图 人妻| 成人日韩中文字幕| 男人下部插入女人下部| 啊啊啊好爽快点啊啊啊嗯嗯| 日本色色色| 最新啪啪视频| 亚洲欧美激情在线视频| 色噜噜人妻丝袜a∨先锋影| 久久国产性爱| 啪啪免费| 亚洲乱码国产乱码精网站| 国产视频一区二区三区在线免费观看 | 国产家庭乱伦性爱视频| 综合亚洲欧美精品日韩?v| 亚洲毛片基地专区| 亚洲成a人v欧美综合天堂下载| 久久久久久加勒比| 九九九九精| 亚洲毛片基地专区| 欧美人体性爱互联网第一页婷婷日本| 久久69| 日本人妻最新在线中| 久久专区| 国产高清视频无码在线| 国产一区二区三区白丝| 最新的亚洲无吗| 家庭乱伦网站国产| 99re在线观看| 精品人妻一区二区三区-国产| 亚洲熟妇丝袜在线观看| 99热导航| 欧美日韩亚洲国产中文永久天天看| 午夜AV污污污| 在线洲亚线| 国产91 丝袜在线播放00-百度| 久久精品熟妇丰满人妻99| 囯产精品久久久久久久久久梁医生 | www.超碰在线| 久久久com| 久久精品老司| 人妻喷水| 肏逼视频日本| AV免费在线播放一区| 狠狠操综合| 亚洲最大黄网| 99精品丰满人妻无码| 色97欧美| 操婢日韩| 五月天婷婷色| 天堂伊人久久| 花花AV导航| 极品综合| 成人精品在线| 久婷婷一区| 中文字幕福利视频一区二区三区在线观看| 四虎精品永久在线播放| 欧美性爱视频免费一区一A| 亚洲少妇喷视频看| B049AV在线播放| 91老司机视频| 黄片aaaaa一区| 久久久久性熟视频| av日韩中文字幕| 香蕉国产精品麻豆亚洲欧美日韩| 黄片不用下载在线观看| 国产嫩草精品A88AV在线| 欧美亚洲清纯| 天天艹天天日| 国产日韩精品一区二区三区| 精品人妻久久久久一区二区三区| 国产精品福利资源在线尤物| 欧美99热| 精品一区二区久久| 亚洲精品白浆高清久久久久久| 99精品在线| 加勒比伊人影院| 国产精品第一区第一页| 麻豆人妻精品一区二区| 久久精品国产97欧美精品亚洲| 日韩免费簧片| 青娱乐亚洲热| 综合色一区三区二区| 亚洲九月丁香| 超碰98综合网| 性爱综合一区二区| 91女网站| 久久久96| www.夜夜| julia国产在线| 黄色大香焦1级‘′‘| 激情终合网| 91久久久亚洲| 天天日日舔舔| 亚洲色图欧美色图另类图片| 99色视频| 综合色区偷拍| 99无码精品| 久久无码一区二区二三区性色| 亚洲国产欧美中文永久| 777AV电影| 吉田爱美AV在线| 超碰色综合| 99无码| 91N综合网| 九九99精品| 老熟乱一区二区三区四区| 深夜激情无码| 亚洲精品久久久久久| 中文自拍欧美影视| 精品高清牛人盗摄一区二区三区中文字幕A片免费在线观看 | www.四虎在线| 男啪女色黄无遮挡免费观看| 久久啊哟| 夜夜草我| 亚洲欧美一区二区不卡视频播放| 午夜.DJ高清在线观看免费7 | 91丨九色丨国产丨人妻在线| 日本不卡二三区| 老熟女搡BBBB搡BBBB视频| 最新精品久久蜜桃 | 日韩一级二级在线| 日韩熟女乱伦中出| 蜜桃视频啊啊啊啊| 五月天社区| 84YTCOM性无码| 97色97好| 国产一区二区三区导航| 成人精品久久| 色呦呦、国产精品| 亚洲成人免费中文字幕| 久99在线免费观看视频| 亚洲色图超碰在线| 亚洲男人久久综合天堂| 香蕉大久久久| 欧美综合骚| 黄色人人| 91熟女丨老女人| n1038 一二三区| japan日本高清乱xxxx| 中文字幕黄色一起草| 香一区二区三区| 亚洲第一黄色av网站| 国产又粗又长又大的视频| 熟妇视频一区二区三区在线观看| 美国人人操人人操| 欧美91变态| 美女黑人91神马| 操淫穴亚洲五月丁香 | 在线播放成人网站| 国产亚洲精品A在线观看下载| 国产风韵犹存熟妇三区| 精品久久久久9999| 日韩中文字幕视频在线观看| 国产精品福利资源在线尤物| q2午夜理论片夜色av| 亚洲。日韩。欧美| 色色五月丁香| 亚洲最大成人a毛毛片| 亚洲熟女诱惑| 久久久久国产精品人妻aⅴ天堂| 日韩精品一二三四| 影音先锋乱| 久久透逼视频| 亚州综合色| 欧美性Fer办公室秘书| 久久九七| 精品久久久久,69国产成人精| 强奸乱伦资源| 亚洲h片在线免费观看| 屁股久久久久久| 9久9久9久9久视频网站| 久久久久密臀视频| 中文字幕av久久爽Av| 99热精品在线| 激情久久av一区av二区av| 岛国毛片在线观看免费| 中日韩免费看男女操逼大全| 国产搭汕a级片| 久久久少妇诱惑精品视频| 伊人网在线观看| 嗯嗯,啊啊,国产精品| 综合婷婷| 亚洲激情av| 簧片免费看视频| 中国女人内射6XXXXX| 亚洲图片激情综合另类| 国产无码久久高清| 韩国三级一线观看久| 男人天堂2017| 9999久久久| 久久久一区二区三区四区五区| 农村少妇久久久久久久| 一二区在线观看视频| 操老熟女AV| 97草草| 国产精品九九| 久久网亚洲| 久久久久久免费电影| 伊人96在线| 怡红院亚洲怡春院av| 国产免费一区| 欧美色吧综合| 亚洲综合在线91| 国产精品不卡少妇白| 超碰色97| 神马久久久久| 强奸乱伦AV一天堂网| 日韩一区二区精彩视频| 成人日韩3| 日本Xx性爱| 亚洲夜夜欢无码一区二区 | 久久成人东京热人妻| 色老大| 久久 精品| 最新无码国产| 思思热久久成人| 无码抄逼网| 99亚亚热| 91亚洲影院综合| 色偷综合| 欧美劲爆第一页| 亚洲中文字幕熟女| 国产精品嫩草久久久久| 操比国产| 熟女人妻av在线资源,黄色的资源 粉嫩国产精品久久粉嫩 | 日韩精品人妻中文字幕有码午| 禁十八久久| 日本不卡一区二区三区| 亚洲图片 欧美电影| 少妇久久久久久久久| 成人av在线播放| 99久久久无码国产精品性男| 25国产精品免费观看| 日韩成人午夜精品久久高潮| 最新9久久久9免费视频| 97亚洲中文| 欧美激情性久久久久久| 少妇滛荡视频| 日本丝袜美腿人妻九九| 骚货 中文字幕 av| 亚洲乱码精品一区二区| 1禁看欧美黄片免费看| 91亚州日韩高清| 色麻豆AV| 久久久九九九| 日本高清一区二区在线| 国产精品乱人伊人网| 一区二区亚州激情久婷婷欧美 | 亚洲天堂另类小说男人| 天天日骚逼熟女| 日韩成人私密一级精品av| 人人干人人搞人人摸| JULIA人妻风俗店中出电影| 日本熟妇自慰性高潮一区二区三区| 97超碰站| 亚洲欧美日韩综合在线尤物| 精产国品一区二三产品| 欧美性暴力猛交| 黄色AAAAA欧美| 最新AVzaixian| 97国产精品在线观看| 国产三级资源在线观看| 盗摄 精品 另类 一区| 99re在线视频国产| 18禁在线视频| 久久极品一区二区| 久久精品一区一起草| 亚洲91在线播放影院| 九月丁香婷婷| 亚洲欧美清纯| 午夜福利成人免费视频| 亚洲欧美日产国产91毛片| 国产精品久久| 欧美国产日韩清纯唯美| 中文字幕一品色图| 日日操丁香五月天| 极品粉嫩少妇视频| 黑人精品XXX一区一二区| 精品女人999| 91美女片在线| 91Chinese在线| 久久久三区二区一区| 中文字幕91页| 无码男人天堂| 国产成人手机视频激情| 欧美少妇性乱| 大香蕉www.超碰| 久草资源在线视频官方总站日韩丝袜美腿 | 偷拍自拍在线视频观看| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊| 一级性爱网| 青青草原狼av| 人人搞人人插人人操| 久久久com| 激情五月天中文字幕色| 天天摸天天插天天日| 青青草中文字幕| 欧美超碰9798| 91精品无码久久久久久久| 久久久9视频| 人妻9117c| 五十路二区在线| 成人a大片在线观看| 91亚洲丝袜| 操婷婷逼| 97国产超碰| 日韩精品高清资源在线| 一区操逼| 亚洲图片在线| 91精品久久久久久77777| 久久99九九九九6666免费观看软件| 97色色视频| 精品高潮| 97超碰久| 抽插无码高清一区| 久热这里只有精品9| 麻豆天美国美国产| 精品国产无码中文| 97超碰欧美手机在线| 国产亚洲精品自在线亚洲情侣| 少妇的嫩逼图片| 精品免费1| 蜜乳AV一区| 青青草这里只有精品| 亚殴在线| 国产91乱伦| sewuyueav| 佐山爱中文字幕| 欧美性巨大╳╳╳╳╳高跟鞋| 久久蜜桃一区二区| 日本九九久久99播| 国产中文字幕曰本毛片| 久久岛国| 女人的天堂大香蕉网| 国产亚洲国产超碰| 国产精品白领在线观看 | 九七色图| 91精品婷婷国产综合久久竹菊| 日韩乱插| 亚洲无码国产探花在线观看| 另类专区加勒比| 麻豆2区1区天美| 你想操日本小逼吗| 97精品久久| 操老熟女AV| 日韩AV色图| 爱射综合| 中国国产精品一区视频| 啊啊啊啊啊啊在线| 色娱乐色呦呦夜夜夜夜av| 色婷婷五月天| 韩国午夜理伦三级好看| a级免费在线观看| 欧美亚洲清纯| 西西美女视频网| 性爱动态120秒| 婷婷亚洲五月***久久| 亚洲人体视频在线观看| 欧美色图校园春色| 99re在线精品78| 夜夜狼人妻| 色婷婷影院| aaaa少妇高潮大片| 国产高清吃奶免费视频网站| 丝袜AV一区二区三区| 啊啊啊啊啊啊啊啊要喷了| 欧美在线伊人色| 亚洲欧美精品一区天堂久久 | 久久风骚城市人| 人妻黑丝袜电影| 天天摸天天碰天天添青青| 日韩精品一二三四| 五月婷久久| 成年人性爱日韩| 欧美日日操| 日韩黄色片子| 91视频精品| 中文字幕三四区| 97亚洲中文| 91无码精品| 久草精品在线| 亚洲性综合11| 久久亚州大香蕉| 97jingpin| 91美女国产在线| 日韩人妻精品| 看看日B真人视频| 天天干1区2区在线| 啊啊啊啊好疼视频| 91日日夜夜| 夜夜爽夜夜摸夜夜操免费视频| 欧美日韩天堂| 亚洲日韩乱码中文无码蜜桃臀网站 | 一二三四区操操Av| 欧洲自拍第一页| 精品少妇一区二区| 人妻熟女一区二区三区视频| 91综合天天看| 欧美 亚洲精品首页| 色色97爱| 日少妇视频| 日日骚AV| 午夜男女爽爽爽影院视频| 成人五级久久| 日本丝袜人妻内射| 1769一区二区| 免费看一级a性色生活片久久无| 日本精品成人无码| 五月婷婷色| 久久免费中文字幕在线观看| 肉丝网站91| av天天在线| 久久久96精品| 亚州性色| 亚洲黄色视频在线观看视频| 高清国产成人无码| 91丨熟女丨丰满熟女| 亚洲色诱惑| 性色一线| 日韩 成人 有码| chaopen97久久| 91成人18| 精品无码久久久久久国产浪潮| 亚洲高清国产理伦片| 国产福利第一视频| 亚洲欧洲小说图片视频 | 亚洲图片小说欧洲| 五月色综合| 天堂资源欧美| 欧洲亚洲天堂精品| 日本二三四区| 超碰色男人操熟女| 日本岛国黄色网址| 青苹果影院男人的天堂| 智利AV在线网| 丰满熟女一区二区三区在线播放| AA级电影三区| 六月激情婷婷| 欧美性暴力猛交XXXX| 人人操人人精品影片| 人人操人人93| 国产激情在线| 91色黑人少妇| 久久精品噜噜噜成人看免欧美大片| 九九九久久久| 国产人妻天天干精品| 亚洲乱色视频一区、二区在线| 欧美第一页| 精品人成视频在线观看| 亚洲最大网站av| 欧美少妇第一页| 一本久久久精品| 成人一级性爱| 天无日色综合| 好爽要喷了| 免费观看性欧美一级| 亚洲九九夜夜| J?P?NESEHD熟女熟妇伦| 亚洲天堂,男人| 欧美综合网1| A级片日韩欧美国产欧美视频精选观看 | 日韩久久三区| 男人天堂久久精品不卡| 亚洲欧美高清无码| 国产999精品久久久久久| 日韩人妻精品| 97在线精品观看视频| 大稥蕉免费视频这里只有精品| 日本高清一本二本免费不卡| ji熟女.com| 九久9热| 淫荡网址| 屌色在线97视频| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 婷婷五月天激情小说| 69丨亚洲丨精品丨入口免费播放| 日韩免费一级性爱视频| 精品区9| 欧美BT 亚洲色图| 亚洲日韩国产欧美综合v| 亚洲综合性网址| jizz啪啪| 国产精品熟女AV中文字幕在线播放| 黑人性欧美| 自偷自拍的亚洲视频| 色五月AV在线| 国产一区二区在线电影| 劲爆欧美人妖三区91| 成 人片 黄色大片| 韩国女主播青草在线| 成 人 A V免费视频在线观看| 亚洲精品男人的天堂| 96超碰网| 狂操嫩妻视频一区二区三区| 唯美清纯 妖精视频| 激情久久久| 狠狠爱大香蕉| 艳美熟妇先锋一二三区| 精品国产Av无码久久久伦古装| 99热这里都是精品| 精品国产乱码久久久A| 五月婷婷色| 欧美91变态| www.四虎在线| 午夜亚洲WWW湿好大| 中文乱码99| 美女熟妇色| 综合97亚洲| 亚洲欧美国产其他二区| 97视频一区| 欧美熟女少妇| 亚洲无码偷拍| 久久 亚洲 日韩 人妻| 在线免费观看日韩一区| 色综合久久夜色精品国产天堂| 黄色在线网站| 日本不卡免费二区| 五月天婷婷成人网| 亚洲综合影院| 欧美78| 一区二区三区精品视频| 99夜夜操| 亚洲91网。| 奇米狠999| 校园春色亚洲色图| 国产乱婷婷精品二区三区| 性爱视频无打码在线观看| 精品中文日韩字幕视频| 一区在线国产播放| 成人线上超碰| 精品无码人妻一区二区免费蜜桃| 伊人久操| 美女黄网| 天天综合网~91综合网| 久久综合五月天| 日韩黄色片子| 一本大道久| 中文字幕丝袜人妻| 爱av免费| 9久在线视频只有精品| 国产欧美成人精品| 久久人妻视频网| 中文字幕国产| 91岛国动作片| 97视频900| 91 手机在线播放 绯色| 国产极品99热在线播放69| 中文字幕乱码在线观看| 婷婷丁香一区二区三区| 色婷婷综合网站| 国产美女自拍AV| 色图四区| 欧美亚洲宗合色性图| 超碰人人乐97| 岛国黄色大片网站| 亚洲男人综合| 97视频播放| 日韩资源网| 欧美一区二区在线资源| 日韩乱伦影音先锋| 成人午夜高潮av猛片| 97ai亚洲| 婷婷15月天青娱乐| 综合色图区| 婷婷深爱五月| 成人无遮挡毛片免费看| 天天伊人| 亚洲欧美激情小说| 丝袜视频一区二区在线播放国产中文| 五月婷婷综合网| 粉嫩av在线一区二区| 色哟哟综合| 日本欧美中文字幕| 婷婷丁香人妻 | 免费超碰97久久| 五月天色电影| 亚洲色堂免费视频| 97色婷婷| 日韩性爱播放| 欧美视频一区二区在线| 国产亚洲欧美每日在线| 日韩欧美性爱电影在线观看| 高清视频一区| 九九九成人| 亚洲欧美视| 操老熟女AV| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 久艾草在线精品视频在线观看| 精品对白久久不卡| 亚洲深夜福利| 超碰人人干天天射| 久久久天堂| 我要色综合网站| 51一区二区三区| 美女丝袜激情小说| 九九九精品成人免费视频小说| 中文字幕一区二区三区人妻不卡| 91国精产品| 亚洲日韩东京热一区| 中文字幕综合人妻| 久久国产精品熟女人妻| 欧美精品偷拍| 大香蕉在线视频重口味毛片在线| 日韩天堂av电影在线观看| 欧美三级一级| 爱干爱射网啊啊啊| 亚洲码和欧洲精品激情系列| 淫色网综合| 超碰在线人妻不卡| 久9久9精品| 欧美亚州色的图| 偷拍新久久| 久久中文字幕在线观看| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区 | 麻豆国产视频精品观看| 狠狠中文字幕| 日本精品高清一二区一本到| 五月丁香六月婷| 美女黄色一级A视频|