網站性能測試指標及網站壓力測試

1. 通常衡量網站性能有哪些指標?
性能指標主要有響應時間,吞吐量,併發量,性能計數器。
1)響應時間
指應用執行一個操做須要的時間,即從發出請求到最後收到響應數據所須要的時間。
系統經常使用操做響應時間表
操做
響應時間
打開一個網站
幾秒
數據庫查詢一條記錄(有索引)
十幾毫秒
機械磁盤一次尋址定位
4毫秒
從機械磁盤順序讀取1M數據
2毫秒
從SSD磁盤順序讀取1M數據
0.3毫秒
從遠程分佈式換成Redis讀取一個數據
0.5毫秒
從內存讀取1M數據
十幾微秒
Java程序本地方法調用
幾微秒
網絡傳輸2Kb數據
1微秒
實踐中一般採用的辦法是重複請求,好比一個請求操做重複執行1萬次,測試一萬次執行的總響應時間之和,而後除以1萬,就獲得單次請求的響應時間。
2)吞吐量
指單位時間內系統處理的請求數量,體現系統的總體處理能力。對於網站,可用「請求數/秒」、「頁面數/秒」或「訪問人數/天」、「處理業務數/小時」等來衡量。重要指標有TPS(每秒處理的事物數)、QPS(每秒查詢的請求數)、HPS(每秒HTTP請求數)等。
3)併發量
指系統可以同時處理的請求的數目,這個數字反映了系統的負載性能。對於網站而言,併發數指網站用戶同時提交請求的用戶數目。
4)性能計數器
描述服務器或操做系統性能的一些數據指標。如System Load、對象與線程數、內存使用、CPU使用、磁盤與網絡I/O等使用狀況。經過對這些指標設置報警閾值,當監控系統發現性能計數器超過閾值時,就向開發人員和運維報警,及時發現異常並處理。
 
2. 怎麼測試網站性能?
性能測試具體能夠細分爲性能測試、負載測試、壓力測試、穩定性測試。
1)性能測試
以系統設計初期規劃的性能指標爲預期目標,對系統不斷施加壓力,驗證系統在資源可接受範圍內是否能達到預期。
2)負載測試
對系統不斷增長併發請求以增長系統壓力,直到系統的某項或多項性能指標達到安全臨界值,這時繼續對系統施加壓力,系統的處理能力不但不會提升,反而會降低。
3)壓力測試
超過安全負載的狀況下,對系統施加壓力,直到系統崩潰或不能再處理任何請求,以此得到系統最大壓力承受能力。
4)穩定性測試
被測試系統在特定硬件、軟件、網絡環境條件下,給系統加載必定業務壓力,使系統運行一段較長時間,以此檢驗系統是否穩定。
 
3. 怎麼進行壓力測試?
壓力測試工具備http_load、apache ab、siege。
1)http_load
下載: http://acme.com/software/http_load/(點擊Fetch the software便可)
安裝:
yum -y install gcc gcc-c++            #安裝GCC編輯器--若已安裝請忽略
tar xzvf http_load-09mar2106.tar.gz   #解壓http_load壓縮包
cd http_load-12mar2006                #進入http_load目錄
mkdir /usr/local/man                  #建立目錄
make && make install                  #編譯並安裝

命令格式:c++

http_load -p 併發訪問進程數 -f 訪問總數 須要訪問的URL文件 
http_load -r 每秒訪問頻率 -s 訪問時間 須要訪問的URL文件
// 參數說明:一般參數pf一塊兒使用,參數rs一塊兒使用。
-parallel 簡寫 -p :併發的用戶進程數。
-fetches 簡寫 -f : 總計的訪問次數。
-rate 簡寫 -r : 每秒的訪問頻率。
-seconds 簡寫 -s :總計的訪問時間。

使用:數據庫

新建一個urls.txt,urls.txt 是一個url 列表,每一個url 單獨的一行。
在文件中加入一行:http:/.wwwkwx.gd/(不能有任何空格存在,不然會報unknown protocol )
① 測試網站是否能承受住預期的訪問壓力
執行http_load -rate 5 -seconds 10 urls.txt,含義爲 在10秒內保持必定的頻率訪問目標url。
 
結果分析:
41 fetches, 1020 max parallel, 851898 bytes, in 10.0008 seconds
# 一共請求鏈接41次,最大併發線程1020個,持續10.0008秒內,總傳輸速率爲 851898bytes 
20778 mean bytes/connection
#每次請求鏈接平均數據量(851898÷41)
4.09969 fetches/sec, 85183.3 bytes/sec
#每秒的響應請求鏈接數爲4.09969個,每秒傳輸的數據爲85183.3btyes/毫秒
msecs/connect: 264.607 mean, 269.482 max, 262.187 min
#每次鏈接平均響應時間:264.607毫秒,最大時間:269.482毫秒,最小時間:262.187毫秒
msecs/first-response: 1949.27 mean, 5394.21 max, 380.501 min
#每次鏈接平均返回時間:1949.27毫秒,最大時間:5394.21毫秒,最小時間:380.501毫秒
HTTP response codes:
code 200 -- 41
#HTTP返回碼:200 ,一共41次。
主要參考fetches/sec、msecs/connect數值,
前者對應QPS,表示每秒的響應請求數,後者對應response time,表示每一個鏈接的響應時間。
相關文章
相關標籤/搜索