第1章 概述
1.1 編寫目的
編寫該測試總結主要有以下幾個目的:
1、 通過對性能的測試結果的分析,得到對網站性能的評估;
2、 分析測試的過程、為網站持續改進的質量過程提供參考。
1.2 項目背景
本項目是應開發中心的要求,對xx網站所涉及的關鍵/接口性能的情況進行壓力測試與分析,以期輔助技術支持人員對服務器進行性能調優。
1.3測試對象
1.4測試范圍
針對上述接口進行壓力測試,本次測試僅對該地址訪問產生的數據交互做為測試依據,並且由於時間緊,只測試以上每個接口在模擬真實用戶情況下的並發數能力。
第2章 測試活動
2.1 測試目的
對上述接口進行壓力測試,分析其真正的負載能力及並發能力,從而為技術人員對服務器性能調優提供參考。
2.2 測試組織架構
2.3 測試環境
2.4 測試工具
loadrunner
nmon
2.5 測試過程
從xxx至xxx展開對上述接口的並發數,事務響應時間等指標進行壓力測試,性能分析與服務器調優,其間進行了多次測試,最終選取代表性的測試場景作為數據來原依據。
2.6 測試場景
場景一:城市字母列表接口並發能力測試
分別設置200,300個虛擬用戶,每個虛擬用戶里面設置集合點,每1秒增加2個用戶,所有的虛擬用戶和人加載完畢后,持續向服務器發起請求。穩定運行30分鍾。(本次測試接近真實用戶行為)結果圖如下:
200並發用戶,性能穩定,圖略
300並發用戶,事務平均響應時間為1.925,事務平均響應時間與每秒請求數合並圖如下:
場景二:城市推薦景點接口測試
分別設置200,300個虛擬用戶,每個虛擬用戶里面設置集合點,每1秒增加2個用戶,所有的虛擬用戶和人加載完畢后,持續向服務器發起請求。穩定運行30分鍾。(本次測試接近真實用戶行為)結果圖如下:
200並發用戶,性能穩定,圖略
300並發用戶,事務平均響應時間為0.158,性能穩定,圖略
此時服務器資源,如圖:
內存資源使用圖如下:
場景三:取varnish中圖片接口測試
分別設置200,300,600,800,1000個虛擬用戶,每個虛擬用戶里面設置集合點,每1秒增加2個用戶,所有的虛擬用戶和人加載完畢后,持續向服務器發起請求。穩定運行30分鍾。(本次測試接近真實用戶行為)結果圖如下:
200,300,600,800並發用戶,性能穩定,圖略
1000並發用戶,運行穩定,平均事務響應時間為最大為1.664,此時平次事務請求數為108.325。參照下圖:
對應的服務器資源使用情況監控圖請參照下圖:
內存使用情況,總體占用空間不大,如下圖:
場景四:圖吧轉坐標接口測試
分別設置300,500個虛擬用戶,每個虛擬用戶里面設置集合點,每1秒增加2個用戶,所有的虛擬用戶和人加載完畢后,持續向服務器發起請求。穩定運行30分鍾。(本次測試接近真實用戶行為,由於會影響到線上服務器,所以沒有繼續加大用戶並發量) 結果圖如下:
300並發用戶,性能穩定,圖略
500並發用戶,事務平均響應時間為0.678,性能穩定,平均事務響應時間與TPS合並圖如下
此時服務器資源使用情況如下圖:
內存使用情況如下圖:
第3章 測試結果分析
3.1 測試結果分析
業務性能指標統計分析結果:
業務名稱 |
並發數 |
業務平均響應時間(秒) |
業務成功 次數 |
業務失敗次數 |
業務失敗率(%) |
平均TPS(個) |
城市字母列表接口。 |
300 |
1.925 |
97736 |
192 |
0.19% |
23.102 |
城市推薦景點。 |
300 |
0.158 |
377,676 |
111 |
0.02% |
89.486 |
取varnish中圖片(以反應最慢的圖片值為參考) |
1000 |
1.644 |
310,244 |
0 |
0 |
54.189 |
圖吧轉坐標, |
500 |
0.678 |
136.222 |
0 |
0 |
58.92 |
從表中結果可以看出,城市字母列表接口與城市推薦景點兩個接口的並發量在300的情況下錯誤率比較小,由於該業務與數據庫有關系,性能比其它兩個結果要低不少,經開發討論此值也應該可以滿足目前我們的業務需求。
資源監控
序號 |
接口名稱 |
CPU使用率 |
內存 |
備注(參照文件) |
1 |
城市字母列表接口。 |
42.4% |
無溢出 |
leador241_131114_1505.xlsx |
2 |
城市推薦景點。 |
7.5% |
無溢出 |
leador241_131114_1421.xlsx |
3 |
取varnish中圖片。 |
5.8% |
無溢出 |
leador-web-220-113-2-91_131115_1005.xlsx |
4 |
圖吧轉坐標, |
3.1% |
無溢出 |
leador241_131114_1651.xlsx |
第4章 測試結論與建議
經過反反復復多次測試,在先后調整測試服務器openfiles, Max user Process, Max user Thread, 以及sql連接數等服務器參數后,在服務器CPU占用合理,內存占用合理的情況下最終得出的上述結果,
城市字母列表接口與城市推薦景點兩個接口的並發量在300的情況下錯誤率比較小,由於該業務與數據庫有關系,所以經過計論認為可以滿足目前的現實需求。
取varnish中圖片和圖吧轉坐標這兩個接口的並發能力較強,分別為1000與500,可以滿足我們目前的業務需求。
由於我們測試環境主數據庫是與tomcat安裝在一台服務器上的,直接會影響到服務器I/O指標(上面服務器監控圖中I/O峰值都比較高,當然與並發用戶請求有關),所以建議我們對數據庫再進行優化。其它方面的性能參數大家可以看附錄文件。
另外我們還有幾個接口與線上服務器有關,以后測試環境具備測試條件后再進行測試,如果有時間我們還可以從網站的其它TPS,HPS等指標,從數據庫的性能角度做針對性的測試,這樣就會得到一個比較全面的測試結果。