日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

性能测试四十五:性能测试策略

發(fā)布時(shí)間:2023/12/10 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 性能测试四十五:性能测试策略 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1、項(xiàng)目具體需求,及業(yè)務(wù)場景:關(guān)注真實(shí)用戶會(huì)是怎樣的一個(gè)業(yè)務(wù)場景,確定用戶的用戶習(xí)慣

2、指標(biāo):響應(yīng)時(shí)間在多少以內(nèi),并發(fā)數(shù)多少,tps多少,總tps多少,穩(wěn)定性交易總量多少,事務(wù)成功率,交易波動(dòng)范圍,穩(wěn)定運(yùn)行時(shí)長,資源利用率,測哪些交易,哪些接口,測試哪些場景。

3、環(huán)境:生產(chǎn)環(huán)境服務(wù)器數(shù)量,測試環(huán)境服務(wù)器數(shù)量,按照資源配比得出測試指標(biāo)。

4、協(xié)議:系統(tǒng)用什么協(xié)議進(jìn)行通訊。

5、壓力機(jī)數(shù)量:如果并發(fā)用戶數(shù)太多,需要把壓力發(fā)到不同的壓力機(jī),不然可能會(huì)存在壓力機(jī)瓶頸問題,導(dǎo)致tps和響應(yīng)時(shí)間抖動(dòng)。

6、交易占比:分析線上日志得出tps占比。

7、系統(tǒng)架構(gòu):請求流經(jīng)過哪些環(huán)節(jié),壓測時(shí)監(jiān)控這些環(huán)節(jié)。

測試

1、基準(zhǔn):一個(gè)用戶迭代100次,關(guān)注響應(yīng)時(shí)間,事務(wù)成功率100%。

2、負(fù)載:10個(gè)用戶跑10分鐘,關(guān)注響應(yīng)時(shí)間,事務(wù)成功率100%。

3、容量:估算一個(gè)總tps,根據(jù)公式計(jì)算出每個(gè)交易的pacing和vu,獲取系統(tǒng)最大處理能力(最優(yōu)容量),再令外測出三個(gè)梯度作為對比(兩組小于最優(yōu)容量,一組大于最優(yōu)容量),四組容量VU等差,tps等差,對比每組容量實(shí)際占比和測試占比(越接近越能模擬真實(shí)場景),關(guān)注響應(yīng)時(shí)間,總tps,tps,事務(wù)成功率,AP cpu利用率,DB cpu利用率,線程死鎖,數(shù)據(jù)庫死鎖。

???? 其中響應(yīng)時(shí)間應(yīng)小于負(fù)載測試時(shí)間,總tps應(yīng)約等于預(yù)估總tps(相差不超過10是正常的),每個(gè)交易的tps應(yīng)接近預(yù)估總tps*占比,事務(wù)成功率100%,AP cpu小于60%,DB cpu小于80%。dump線程棧檢測是否有線程死鎖,查看數(shù)據(jù)庫日志看是否有數(shù)據(jù)庫死鎖。

4、穩(wěn)定性:采取最優(yōu)容量的80%作為壓力持續(xù)運(yùn)行24小時(shí),觀察系統(tǒng)長時(shí)間運(yùn)行的性能表現(xiàn),關(guān)注響應(yīng)時(shí)間,tps,總tps,事務(wù)成功率,交易總數(shù),觀察是否有內(nèi)存溢出(堆溢出,棧溢出,持久代溢出),cpu利用率是否達(dá)標(biāo),mem是否不持續(xù)增長,是否能正常觸發(fā)fullgc,gc時(shí)間,gc頻率, fullgc時(shí)間,fullgc頻率(重點(diǎn)關(guān)注,JVM調(diào)優(yōu)就是為了減少fullgc頻率)。

壓測中遇到的性能問題及解決辦法

一、測試過程中cpu過高

1、用vmstat實(shí)時(shí)監(jiān)控cpu使用情況。很小的壓力AP cpu卻到了80%多,指標(biāo)是不能超過60%。

2、分析是use cpu過高還是sys cpu過高,常見的是use cpu使用過高。

3、如果是sys cpu使用過高,先把消耗cpu最多的進(jìn)程找出來(top命令),再找到該線程下消耗cpu過高的是哪幾個(gè)線程,再把該線程轉(zhuǎn)換成16進(jìn)制,再用jstack命令來dump線程棧,看這個(gè)線程棧在調(diào)用什么東西導(dǎo)致use cpu過高。

二、內(nèi)存溢出(堆溢出、棧溢出、持久代溢出)

1、堆內(nèi)存溢出

1)穩(wěn)定性壓測一段時(shí)間后,LR報(bào)錯(cuò),日志報(bào)java.lang.OutOfMemoryError.Java heap space。

2)用jmap -histo pid命令dump堆內(nèi)存使用情況,查看堆內(nèi)存排名前20個(gè)對象,看是否有自己應(yīng)用程序的方法,從最高的查起,如果有則檢查該方法是什么原因造成堆內(nèi)存溢出。

3)如果前20里沒有自己的方法,則用jmap -dump來dump堆內(nèi)存,在用MAT分析dump下來的堆內(nèi)存,分析導(dǎo)出內(nèi)存溢出的方法。

4)如果應(yīng)用程序的方法沒有問題,則需要修改JVM參數(shù),修改xms,xmx,調(diào)整堆內(nèi)存參數(shù),一般是增加堆內(nèi)存。

2、棧內(nèi)存溢出

1)穩(wěn)定性壓測一段時(shí)間后,LR報(bào)錯(cuò),日志報(bào)Java.Lang.StackOverflowError。

2)修改jvm參數(shù),將xss參數(shù)改大,增加棧內(nèi)存。

3)棧溢出一定是做批量操作引起的,減少批處理數(shù)據(jù)量。

3、持久代溢出

1)穩(wěn)定性壓測一定時(shí)間后,日志報(bào)Java.Lang.OutOfMenoryError.PermGen Space。

2)這種原因是由于類、方法描述、字段描述、常量池、訪問修飾符等一些靜態(tài)變量太多,將持久代占滿導(dǎo)致持久代溢出。

3)修改jvm配置,將XX:MaxPermSize=256參數(shù)調(diào)大。盡量減少靜態(tài)變量。

三、線程死鎖

1、容量測試壓測一段時(shí)間后,LR報(bào)連接超時(shí)。

2、造成這種現(xiàn)象的原因很多,比如帶寬不夠,中間件線程池不夠用,數(shù)據(jù)庫連接池不夠,連接數(shù)占滿等都會(huì)造成連接不上而報(bào)超時(shí)錯(cuò)誤。

3、jstack命令dump線程棧,搜索線程棧里有沒有block,如果有的話就是線程死鎖,找到死鎖的線程,分析對應(yīng)的代碼。

四、數(shù)據(jù)庫死鎖

1、容量測試壓測一段時(shí)間后,LR報(bào)連接超時(shí)。

2、造成這種現(xiàn)象的原因很多,比如帶寬不夠,中間件線程池不夠用,數(shù)據(jù)庫連接池不夠,連接數(shù)占滿等都會(huì)造成連接不上而報(bào)超時(shí)錯(cuò)誤。

3、數(shù)據(jù)庫日志中搜索block,能搜到block的話就是存在數(shù)據(jù)庫死鎖,找到日志,查看對應(yīng)的sql,優(yōu)化造成死鎖的sql。

五、數(shù)據(jù)庫連接池不釋放

1、容量測試壓測一段時(shí)間后,LR報(bào)連接超時(shí)。

2、造成這種現(xiàn)象的原因很多,比如帶寬不夠,中間件線程池不夠用,數(shù)據(jù)庫連接池不夠,連接數(shù)占滿等都會(huì)造成連接不上而報(bào)超時(shí)錯(cuò)誤。

3、去數(shù)據(jù)庫查看應(yīng)用程序到數(shù)據(jù)庫的連接有多少個(gè)( show full processlist),假如應(yīng)用程序里面配置的數(shù)據(jù)庫連接為30,在數(shù)據(jù)庫查看應(yīng)用程序到數(shù)據(jù)庫的連接也是30,則表示連接池占滿了。將配置改成90試試,去數(shù)據(jù)庫看如果連接到了90,則可以確定是數(shù)據(jù)庫連接池不釋放導(dǎo)致的。查看代碼,數(shù)據(jù)庫連接部分是不是有創(chuàng)建連接但是沒有關(guān)閉連接的情況。基本就是這種情況導(dǎo)致的,修改代碼即可。

六、TPS上不去

1、壓力大的時(shí)候tps頻繁抖動(dòng),導(dǎo)致總tps上不去。查看是否有fullgc(tail -f gc_mSrv1.log | grep full)。

2、pacing設(shè)置太小也會(huì)導(dǎo)致tps上不去,對抖動(dòng)大的交易多增加點(diǎn)用戶即可。

3、tps抖動(dòng),單壓抖動(dòng)大的交易,發(fā)現(xiàn)很平穩(wěn),這時(shí)懷疑是不是壓力太大導(dǎo)致,所以發(fā)容量的時(shí)候把壓力最大的那只交易分到其他壓力機(jī),然后發(fā)現(xiàn)tps不抖動(dòng)了。注意:多臺(tái)壓力機(jī)只影響tps抖動(dòng),不會(huì)影響服務(wù)器的cpu。

4、看響應(yīng)時(shí)間有沒有超時(shí),看用戶數(shù)夠不夠。

七、服務(wù)器壓力不均衡(相差1%-2%是正常的)

1、跑最優(yōu)容量的時(shí)候,四臺(tái)AP只有一臺(tái)cpu超過60%,其他三臺(tái)都在60%以下。

2、查看服務(wù)器是否有定時(shí)任務(wù)。

3、查看是否存在壓力機(jī)瓶頸。

4、是否存在帶寬瓶頸(局域網(wǎng)不存在此問題)。

5、查看部署的版本,配置是否一樣。

6、可能別人也在用這些AP,因?yàn)橥慌_(tái)物理機(jī)上有很多虛擬機(jī),因?yàn)閯e人先用,資源被別人先占了。

八、fullgc時(shí)間太長

1、跑容量和穩(wěn)定性的時(shí)候,出現(xiàn)LR報(bào)請求超時(shí)錯(cuò)誤,查看后臺(tái)日志是fullgc了,看LR幾點(diǎn)報(bào)的錯(cuò)和日志里fullgc的時(shí)間是否對應(yīng),fullgc會(huì)暫停整個(gè)應(yīng)用程序,導(dǎo)致LR前端沒響應(yīng),所以報(bào)錯(cuò),這時(shí)可以減少old代內(nèi)存,從而減少fullgc時(shí)間,減少fullgc時(shí)間LR就不會(huì)報(bào)錯(cuò),讓用戶幾乎感覺不到應(yīng)用程序暫停。

2、四臺(tái)AP輪流著full gc(部分server fullgc,其他server也會(huì)fullgc),這時(shí)可以制定策略讓不同的server不同時(shí)fullgc,或者等夜間交易量少時(shí)寫定時(shí)任務(wù)重啟服務(wù)。

十、系統(tǒng)性能指標(biāo)

1)業(yè)務(wù)指標(biāo):主要包括并發(fā)用戶數(shù)、響應(yīng)時(shí)間、處理能力。

指標(biāo)

定義

簡稱

標(biāo)準(zhǔn)

交易響應(yīng)時(shí)間

指用戶從客戶端發(fā)起一個(gè)請求開始,到客戶端接收到從服務(wù)器端返回的響應(yīng)結(jié)束,整個(gè)過程所耗費(fèi)的時(shí)間。

Response Time: RT

對于在線實(shí)時(shí)交易:

互聯(lián)網(wǎng)企業(yè):500毫秒以下,例如淘寶業(yè)務(wù)10毫秒左右。

金融企業(yè):1秒以下為佳,部分復(fù)雜業(yè)務(wù)3秒以下。

保險(xiǎn)企業(yè):3秒以下為佳。

制造業(yè):5秒以下為佳。

對于批量交易:

不同數(shù)據(jù)量結(jié)果是不一樣的,大數(shù)據(jù)量的情況下,2小時(shí)內(nèi)完成。

系統(tǒng)處理能力

指系統(tǒng)在利用系統(tǒng)硬件平臺(tái)和軟件平臺(tái)進(jìn)行信息處理的能力。

系統(tǒng)處理能力通過系統(tǒng)每秒鐘能夠處理的交易數(shù)量來評(píng)價(jià),交易有兩種理解:一是業(yè)務(wù)人員角度的一筆業(yè)務(wù)過程;二是系統(tǒng)角度的一次交易申請和響應(yīng)過程。前者稱為業(yè)務(wù)交易過程,后者稱為事務(wù)。兩種交易指標(biāo)都可以評(píng)價(jià)應(yīng)用系統(tǒng)的處理能力。一般建議與系統(tǒng)交易日志保持一致,以便于統(tǒng)計(jì)業(yè)務(wù)量或者交易量。

HPS(Hits Per Second) :每秒點(diǎn)擊次數(shù),單位是次/秒。

TPS(Transaction per Second):系統(tǒng)每秒處理交易數(shù),單位是筆/秒。

QPS(Query per Second):系統(tǒng)每秒處理查詢次數(shù),單位是次/秒。

對于互聯(lián)網(wǎng)業(yè)務(wù)中,如果某些業(yè)務(wù)有且僅有一個(gè)請求連接,那么TPS=QPS=HPS。

一般情況下,用TPS來衡量整個(gè)業(yè)務(wù)流程,用QPS來衡量接口查詢次數(shù),用HPS來表示對服務(wù)器點(diǎn)擊請求。

無論TPS、QPS、HPS,此指標(biāo)是衡量系統(tǒng)處理能力非常重要的指標(biāo),越大越好。

并發(fā)用戶數(shù)

指在同一時(shí)刻內(nèi),登錄系統(tǒng)并進(jìn)行業(yè)務(wù)操作的用戶數(shù)量。在測試中,采用虛擬用戶來模擬現(xiàn)實(shí)中用戶進(jìn)行業(yè)務(wù)操作。

Virtual User: VU

一般情況下,性能測試是將系統(tǒng)處理能力容量測出來,而不是測試并發(fā)用戶數(shù),除了服務(wù)器長連接可能影響并發(fā)用戶數(shù)外,系統(tǒng)處理能力不受并發(fā)用戶數(shù)影響,可以用最小的用戶數(shù)將系統(tǒng)處理能力容量測試出來,也可以用更多的用戶將系統(tǒng)處理能力容量測試出來。

錯(cuò)誤率

指系統(tǒng)在負(fù)載情況下,失敗交易的概率。

錯(cuò)誤率=(失敗交易數(shù)/交易總數(shù))*100%。

穩(wěn)定性較好的系統(tǒng),其錯(cuò)誤率應(yīng)該由超時(shí)引起,即為超時(shí)率。

Failure Ratio: FR

不同系統(tǒng)對錯(cuò)誤率的要求不同,但一般不超出千分之六,即成功率不低于99.4%。

?

2)資源指標(biāo):CPU資源利用率、內(nèi)存利用率、磁盤I/O、網(wǎng)絡(luò)I/O、內(nèi)核參數(shù)(信號(hào)量、打開文件數(shù))等。

指標(biāo)

定義

簡稱

標(biāo)準(zhǔn)

CPU

中央處理器是一塊超大規(guī)模的集成電路,是一臺(tái)計(jì)算機(jī)的運(yùn)算核心(Core)和控制核心( Control Unit)。它的功能主要是解釋計(jì)算機(jī)指令以及處理計(jì)算機(jī)軟件中的數(shù)據(jù)。

Central Processing Unit:CPU

CPU指標(biāo)主要指的CPU利用率,包括用戶態(tài)(user)、系統(tǒng)態(tài)(sys)、等待態(tài)(wait)、空閑態(tài)(idle)。

CPU利用率要低于業(yè)界警戒值范圍之內(nèi),即小于或者等于75%;

CPU sys%小于或者等于30%,?

CPU wait%小于或者等于5%。

CPU Load要小于CPU 核數(shù)。

內(nèi)存

內(nèi)存是計(jì)算機(jī)中重要的部件之一,它是與CPU進(jìn)行溝通的橋梁。計(jì)算機(jī)中所有程序的運(yùn)行都是在內(nèi)存中進(jìn)行的,因此內(nèi)存的性能對計(jì)算機(jī)的影響非常大。

Memory就是內(nèi)存的簡稱

現(xiàn)代的操作系統(tǒng)為了最大利用內(nèi)存,在內(nèi)存中存放了緩存,因此內(nèi)存利用率100%并不代表內(nèi)存有瓶頸,衡量系統(tǒng)內(nèi)有有瓶頸主要靠SWAP(與虛擬內(nèi)存交換)交換空間利用率,一般情況下,SWAP交換空間利用率要低于70%,太多的交換將會(huì)引起系統(tǒng)性能低下。

磁盤吞吐量

指在無磁盤故障的情況下單位時(shí)間內(nèi)通過磁盤的數(shù)據(jù)量。

Disk Throughput

磁盤指標(biāo)主要有每秒讀寫多少兆,磁盤繁忙率,磁盤隊(duì)列數(shù),平均服務(wù)時(shí)間,平均等待時(shí)間,空間利用率。其中磁盤繁忙率是直接反映磁盤是否有瓶頸的的重要依據(jù),一般情況下,磁盤繁忙率要低于70%。

網(wǎng)絡(luò)吞吐量

指在無網(wǎng)絡(luò)故障的情況下單位時(shí)間內(nèi)通過的網(wǎng)絡(luò)的數(shù)據(jù)數(shù)量。單位為Byte/s。用于衡量系統(tǒng)對于網(wǎng)絡(luò)設(shè)備或鏈路傳輸能力的需求。

當(dāng)網(wǎng)絡(luò)吞吐量指標(biāo)接近網(wǎng)絡(luò)設(shè)備或鏈路最大傳輸能力時(shí),則需要考慮升級(jí)網(wǎng)絡(luò)設(shè)備。

Network Throughput

網(wǎng)絡(luò)吞吐量指標(biāo)主要有每秒有多少兆流量進(jìn)出,一般情況下不能超過設(shè)備或鏈路最大傳輸能力的70%。

3)中間件指標(biāo):常用的中間件例如Tomcat、Weblogic等指標(biāo)主要包括JVM, ThreadPool, JDBC。

指標(biāo)

二級(jí)指標(biāo)

解釋

單位

GC

GC頻率

java虛擬機(jī)垃圾部分回收頻率

每秒多少次

Full GC頻率

java虛擬機(jī)垃圾完全回收頻率

每小時(shí)多少次

Full GC平均時(shí)長

用于垃圾完全回收的平均時(shí)長

Full GC最大時(shí)長

用于垃圾完全回收的最大時(shí)長

ThreadPool

Active Thread Count

活動(dòng)的線程數(shù)

個(gè)

Pending User Request

處于排隊(duì)的用戶請求個(gè)數(shù)

個(gè)

JDBC

JDBC Active Connection

JDBC活動(dòng)連接數(shù)

個(gè)

標(biāo)準(zhǔn)

當(dāng)前正在運(yùn)行的線程數(shù)不能超過設(shè)定的最大值。一般情況下系統(tǒng)性能較好的情況下,線程數(shù)最小值設(shè)置50和最大值設(shè)置200比較合適。

當(dāng)前運(yùn)行的JDBC連接數(shù)不能超過設(shè)定的最大值。一般情況下系統(tǒng)性能較好的情況下,JDBC最小值設(shè)置50和最大值設(shè)置200比較合適。

GC頻率不能頻繁,特別是FULL GC更不能頻繁,一般情況下系統(tǒng)性能較好的情況下,JVM最小堆大小和最大。

?

4)數(shù)據(jù)庫指標(biāo):SQL、吞吐量、命中率、鎖。

指標(biāo)

二級(jí)指標(biāo)

解釋

單位

SQL

耗時(shí)

執(zhí)行SQL耗時(shí)

微秒

吞吐量

QPS

每秒查詢次數(shù)

個(gè)

TPS

每秒事務(wù)次數(shù)

個(gè)

命中率

Key Buffer命中率

索引緩沖區(qū)命中率

百分之

InnoDB Buffer命中率

InnoDB緩沖區(qū)命中率

百分之

Query Cache命中率

查詢緩存命中率

百分之

Table Cache命中率

表緩存命中率

百分之

Thread Cache命中率

線程緩存命中率

百分之

標(biāo)準(zhǔn)

SQL耗時(shí)越小越好,一般情況下微秒級(jí)別。

命中率越高越好,一般情況下不能低于95%。

鎖等待次數(shù)越低越好,等待時(shí)間越短越好。

?

5)前端指標(biāo):頁面加載時(shí)間、頁面數(shù)量、網(wǎng)絡(luò)時(shí)間(DNS,連接時(shí)間、傳輸時(shí)間等)。

指標(biāo)

二級(jí)指標(biāo)

解釋

單位

頁面展示

首次顯示時(shí)間

在瀏覽器地址欄輸入U(xiǎn)RL按回車到用戶看到網(wǎng)頁的第一個(gè)視覺標(biāo)志為止

毫秒

OnLoad事件時(shí)間

瀏覽器觸發(fā)onLoad事件的時(shí)間,當(dāng)原始文檔和所有引用的內(nèi)容完全下載后才會(huì)觸發(fā)這個(gè)事件

毫秒

完全載入的時(shí)間

所有onLoad JavaScript 處理程序執(zhí)行完畢,所有動(dòng)態(tài)的或延遲加載的內(nèi)容都通過這些處理程序觸發(fā)的時(shí)間

毫秒

頁面數(shù)量

頁面大小

整個(gè)頁面大小

KB

請求數(shù)量

從網(wǎng)站下載資源時(shí)所有網(wǎng)絡(luò)請求的總數(shù),盡量少

網(wǎng)絡(luò)所花時(shí)間

DNS時(shí)間

DNS查找時(shí)間

毫秒

連接時(shí)間

瀏覽器與Web服務(wù)器建立TCP/IP連接的時(shí)間

毫秒

服務(wù)器時(shí)間

服務(wù)器處理時(shí)間

毫秒

傳輸時(shí)間

內(nèi)容傳輸所用時(shí)間

毫秒

等待時(shí)間

等待某個(gè)資源釋放的時(shí)間

毫秒

標(biāo)準(zhǔn)

頁面要盡可能小及壓縮。

頁面展示和花費(fèi)時(shí)間越短越好。

?

6)穩(wěn)定性指標(biāo)

最短穩(wěn)定時(shí)間:系統(tǒng)按照最大容量的80%或標(biāo)準(zhǔn)壓力(系統(tǒng)的預(yù)期日常壓力)情況下運(yùn)行,能夠穩(wěn)定運(yùn)行的最短時(shí)間。?

一般來說,對于正常工作日(8小時(shí))運(yùn)行的系統(tǒng),至少應(yīng)該能保證系統(tǒng)穩(wěn)定運(yùn)行8小時(shí)以上。對于7*24運(yùn)行的系統(tǒng),至少應(yīng)該能夠保證系統(tǒng)穩(wěn)定運(yùn)行24小時(shí)以上。

標(biāo)準(zhǔn)

TPS曲線穩(wěn)定,沒有大幅度的波動(dòng)。

各項(xiàng)資源指標(biāo)沒有泄露或異常情況。

?

7)批量處理指標(biāo):指批量處理程序單位時(shí)間內(nèi)處理的數(shù)據(jù)數(shù)量。一般用每秒處理的數(shù)據(jù)量來衡量。

處理效率是估算批量處理時(shí)間窗口最重要的計(jì)算指標(biāo)。

關(guān)于批量處理時(shí)間窗口,不同系統(tǒng)的批量處理時(shí)間窗口在起止時(shí)間上可以部分重疊。另外,同一系統(tǒng)內(nèi)部,也可能存在多個(gè)批量處理過程同時(shí)進(jìn)行,其時(shí)間窗口相互疊加。

標(biāo)準(zhǔn)

在數(shù)據(jù)量很大的情況下,批處理時(shí)間窗口時(shí)間越短越好。

不能影響實(shí)時(shí)交易系統(tǒng)性能。

?

8)可擴(kuò)展性指標(biāo):指應(yīng)用軟件或操作系統(tǒng)以群集方式部署,增加的硬件資源與增加的處理能力之間的關(guān)系。

計(jì)算公式為:(增加性能/原始性能)/(增加資源/原始資源)*100%。

擴(kuò)展能力應(yīng)通過多輪測試獲得擴(kuò)展指標(biāo)的變化趨勢。

標(biāo)準(zhǔn)

理想的擴(kuò)展能力是資源增加幾倍,性能就提升幾倍。

擴(kuò)展能力至少在70%以上。

?

9)可靠性指標(biāo):雙機(jī)熱備、集群、備份和恢復(fù)。

指標(biāo)

測試內(nèi)容

雙機(jī)熱備

節(jié)點(diǎn)切換是否成功及其消耗時(shí)間

雙機(jī)切換是否有業(yè)務(wù)中斷

節(jié)點(diǎn)回切是否成功及其耗時(shí)

雙機(jī)回切是否有業(yè)務(wù)中斷

節(jié)點(diǎn)回切過程中的數(shù)據(jù)丟失量

集群

集群中某個(gè)節(jié)點(diǎn)出現(xiàn)故障時(shí),系統(tǒng)是否有業(yè)務(wù)中斷情況出現(xiàn)

在集群中新增一個(gè)節(jié)點(diǎn)時(shí),是否需要重啟系統(tǒng)

當(dāng)故障節(jié)點(diǎn)恢復(fù)后,加入集群,是否需要重啟系統(tǒng)

當(dāng)故障節(jié)點(diǎn)恢復(fù)后,加入集群,系統(tǒng)是否有業(yè)務(wù)中斷情況出現(xiàn)

節(jié)點(diǎn)切換需要多長時(shí)間

備份和恢復(fù)

備份是否成功及其消耗時(shí)間

備份是否使用腳本自動(dòng)化完成

恢復(fù)是否成功及其消耗時(shí)間

恢復(fù)是否使用腳本自動(dòng)化完成

?

2.?具體性能的分析流程?

首先看關(guān)鍵指標(biāo)是否滿足需求,如果不滿足,需要確定是哪個(gè)地方有問題,一般情況下,服務(wù)器端問題可能性比較大,也有可能是客戶端問題(這種可能性非常小)。

如果是服務(wù)器端的問題,需要定位的問題有硬件相關(guān)指標(biāo),例如CPU,Memory,Disk I/O,Network I/O,如果是某個(gè)硬件指標(biāo)有問題,需要深入的進(jìn)行分析。如果中間件相關(guān)指標(biāo)沒問題,需要查看數(shù)據(jù)庫相關(guān)指標(biāo),例如:慢查SQL,命中率,鎖,參數(shù)設(shè)置。

如果以上指標(biāo)都正常,應(yīng)用程序的算法、緩沖、緩存、同步或異步可能有問題,需要具體深入的分析。

?

3.?如果讓你去優(yōu)化前端頁面,你的優(yōu)化流程是?

遇到問題,第一步是確定問題,先要確定是前端的問題還是后端的問題。

如果是前端的問題,那就要確定在哪些地方出了問題,按照前端的各種檢測方法來檢查。

如果是后端的問題,就從系統(tǒng)、中間件、數(shù)據(jù)庫、網(wǎng)絡(luò)等方面入手。

如何確定問題呢?

比如用Firefox的firebug調(diào)試,看一次請求在各部分分別花了多少時(shí)間,哪些請求耗時(shí)最長。

如果請求的是靜態(tài)資源,時(shí)間很長,就需要考慮部署CDN啥的;

如果請求的不是靜態(tài)資源而是服務(wù)器數(shù)據(jù),時(shí)間長速度慢,那就分兩種情況進(jìn)行考慮:第一是后端的問題,第二是前端渲染問題。

如果返回?cái)?shù)據(jù)很快,但界面數(shù)據(jù)沒出來,就要考慮是前端js程序問題還是圖片等資源太大的問題等等。

轉(zhuǎn)載于:https://www.cnblogs.com/malinalian/p/10583314.html

總結(jié)

以上是生活随笔為你收集整理的性能测试四十五:性能测试策略的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。