一、什么是性能測試
先看下百度百科對它的定義
性能測試是通過(guò)自動(dòng)化的測試工具模擬多種正常、峰值以及異常負載條件來(lái)對系統的各項性能指標進(jìn)行測試。
我們可以認為性能測試是:通過(guò)在測試環(huán)境下對系統或構件的性能進(jìn)行探測,用以驗證在生產(chǎn)環(huán)境下系統性能是否達到預估的性能需求,發(fā)現系統可能存在的性能瓶頸,進(jìn)而改善優(yōu)化并系統的性能,提高系統的可擴展性、穩定性。
學(xué)習性能測試,或者對測試結果進(jìn)行分析,都需要熟悉測試指標。接下來(lái)從性能測試分析度量的角度,介紹性能測試不同維度的測試指標。
二、系統性能指標
2.1響應時(shí)間
響應時(shí)間(ResponseTime),簡(jiǎn)稱(chēng)RT,是指用戶(hù)從客戶(hù)端發(fā)起一個(gè)請求開(kāi)始,到客戶(hù)端接收到從服務(wù)器端返回的結果,整個(gè)過(guò)程所耗費的時(shí)間。不包括前端頁(yè)面的處理和渲染時(shí)間。直觀(guān)上看,這個(gè)指標與人對軟件性能的主觀(guān)感受是非常一致的,因為它完整地記錄了整個(gè)計算機系統處理請求的時(shí)間。響應時(shí)間的絕對值并不能直接反映軟件的性能的高低,軟件性能的高低實(shí)際上取決于用戶(hù)對該響應時(shí)間的接受程度。
2.2系統處理能力
指系統在利用系統硬件平臺和軟件平臺進(jìn)行信息處理的能力,系統處理能力通過(guò)系統每秒鐘能夠處理的交易數量來(lái)評價(jià),交易有兩種理解:
。1)從業(yè)務(wù)人員角度進(jìn)行的一筆業(yè)務(wù)過(guò)程;
。2)從系統角度的一次交易申請和響應過(guò)程。
前者稱(chēng)為業(yè)務(wù)交易過(guò)程,后者稱(chēng)為事務(wù),兩種交易指標都可以評價(jià)應用系統的處理能力。一般情況下,系統處理能力用以下幾個(gè)指標來(lái)度量:
HPS(HitsPerSecond):每秒點(diǎn)擊次數,單位是次/秒
TPS(TransactionperSecond):系統每秒處理交易數,單位是筆/秒
QPS(QueryperSecond):系統每秒處理查詢(xún)次數,單位是次/秒
對于互聯(lián)網(wǎng)業(yè)務(wù)中,如果某些業(yè)務(wù)有且僅有一個(gè)請求連接,那么TPS=QPS=HPS,一般情況下用TPS來(lái)衡量整個(gè)業(yè)務(wù)流程,用QPS來(lái)衡量接口查詢(xún)次數,用HPS來(lái)表示對服務(wù)器點(diǎn)擊請求。
2.3吞吐量
指系統在單位時(shí)間內處理請求的數量。對于單用戶(hù)的系統,響應時(shí)間可以很好地度量系統的性能;而對于并發(fā)系統,通常需要用吞吐量作為性能指標。一般而言,吞吐量是一個(gè)比較通用的指標,兩個(gè)具有不同用戶(hù)數和用戶(hù)使用模式的系統,如果其最大吞吐量基本一致,則可以判斷兩個(gè)系統的處理能力基本一致。
2.4并發(fā)用戶(hù)數
指在同一時(shí)刻內,登錄系統并進(jìn)行業(yè)務(wù)操作的用戶(hù)數量。對于長(cháng)連接系統來(lái)說(shuō)最大并發(fā)用戶(hù)數即是系統的并發(fā)接入能力,而對于短連接系統而言最大并發(fā)用戶(hù)數并不等于系統的并發(fā)接入能力短連接系統的并發(fā)用戶(hù)數與系統架構、系統處理能力等各種情況相關(guān)。
與吞吐量相比,并發(fā)用戶(hù)數是一個(gè)更直觀(guān)但也更籠統的性能指標。實(shí)際上,并發(fā)用戶(hù)數是一個(gè)非常不準確的指標,因為用戶(hù)不同的使用模式會(huì )導致不同用戶(hù)在單位時(shí)間發(fā)出不同數量的請求。
2.5錯誤率
錯誤率(ErrorRate),是指在一定時(shí)間內處理請求時(shí)發(fā)生的錯誤或失敗的次數與總請求數量之比。錯誤率通常以百分比形式表示,例如:99%的成功率或1%的失敗率等。這個(gè)指標越低代表系統性能越好。
三、資源性能指標
3.1CPU
CPU又稱(chēng)為中央處理器,是一塊超大規模的集成電路,是一臺計算機的運算核心(Core)和控制核心(ControlUnit),功能主要是解釋計算機指令以及處理計算機軟件中的數據。
CPU指標主要指的CPU利用率,包括:用戶(hù)態(tài)(user)、系統態(tài)(sys)、等待態(tài)(wait)、空閑態(tài)(idle)。性能測試CPU的評估建議值:
。1)CPU利用率要低于業(yè)界警戒值范圍之內,即小于或者等于75%
。2)CPUsys%小于或者等于30%
。3)CPUwait%小于或者等于5%
3.2內存
內存是與CPU進(jìn)行溝通的橋梁,計算機中所有程序的運行都是在內存中進(jìn)行的,因此內存的性能對計算機的影響非常大。
現在的操作系統為了最大利用內存,在內存中存放了緩存,因此內存利用率100%并不代表內存有瓶頸。衡量系統內存是否有瓶頸主要靠SWAP(與虛擬內存交換)交換空間利用率,一般情況下,SWAP交換空間利用率要低于70%,太多的交換將會(huì )引起系統性能低下。
3.3磁盤(pán)吞吐量
磁盤(pán)吞吐量簡(jiǎn)稱(chēng)為DiskThroughput,是指在無(wú)磁盤(pán)故障的情況下單位時(shí)間內通過(guò)磁盤(pán)的數據量。分析指標主要有每秒讀寫(xiě)多少兆、磁盤(pán)繁忙率、磁盤(pán)隊列數、平均服務(wù)時(shí)間、平均等待時(shí)間、空間利用率等等。其中磁盤(pán)繁忙率是直接反映磁盤(pán)是否有瓶頸的的重要依據,一般情況下,磁盤(pán)繁忙率要低于70%。
3.4網(wǎng)絡(luò )吞吐量
網(wǎng)絡(luò )吞吐量簡(jiǎn)稱(chēng)為NetworkThroughput,是指在無(wú)網(wǎng)絡(luò )故障的情況下單位時(shí)間內通過(guò)的網(wǎng)絡(luò )的數據數量,單位為Byte/s。
網(wǎng)絡(luò )吞吐量指標用于衡量系統對于網(wǎng)絡(luò )設備或鏈路傳輸能力的需求。當網(wǎng)絡(luò )吞吐量指標接近網(wǎng)絡(luò )設備或鏈路最大傳輸能力時(shí),則需要考慮升級網(wǎng)絡(luò )設備。網(wǎng)絡(luò )吞吐量指標主要有每秒有多少兆流量進(jìn)出,一般情況下不能超過(guò)設備或鏈路最大傳輸能力的70%。
四、中間件指標
常用的中間件例如Tomcat、Weblogic等指標主要包括JVM、ThreadPool和JDBC,具體如下:
各項指標參考標準:
。1)當前正在運行的線(xiàn)程數不能超過(guò)設定的最大值
系統性能較好的情況下,線(xiàn)程數最小值設置50和最大值設置200比較合適。
。2)當前運行的JDBC連接數不能超過(guò)設定的最大值
系統性能較好的情況下,JDBC最小值設置50和最大值設置200比較合適。
。3)GC頻率不能頻繁,特別是FULLGC更不能頻繁
系統性能較好的情況下,JVM最小堆大小和最大堆大小分別設置1024M比較合適。
五、數據庫指標
常用的數據庫指標主要包括SQL、吞吐量、緩存命中率、連接數等等,具體如下:
參考標準:
。1)SQL耗時(shí)越小越好,一般情況下微秒級別;
。2)命中率越高越好,一般情況下不能低于95%;
。3)鎖等待次數越低越好,等待時(shí)間越短越好。
六、穩定性指標
這里的穩定性是指最短穩定時(shí)間,即系統按照最大容量的80%或標準壓力(系統的預期日常壓力)情況下運行,能夠穩定運行的最短時(shí)間。
一般來(lái)說(shuō),對于正常工作日(8小時(shí))運行的系統,至少應該能保證系統穩定運行8小時(shí)以上;對于7*24運行的系統,至少應該能夠保證系統穩定運行24小時(shí)以上。如果系統不能穩定的運行,上線(xiàn)后,隨著(zhù)業(yè)務(wù)量的增長(cháng)和長(cháng)時(shí)間運行,將會(huì )出現性能下降甚至崩潰的風(fēng)險。
參考標準:
。1)TPS曲線(xiàn)穩定,沒(méi)有大幅度的波動(dòng);
。2)各項資源指標沒(méi)有泄露或異常情況。
本文內容不用于商業(yè)目的,如涉及知識產(chǎn)權問(wèn)題,請權利人聯(lián)系51Testing小編(021-64471599-8017),我們將立即處理