如何使用、判斷Apache AB壓力測試

最近公司的一個項目(在線考試軟件),客戶提出500人在線,設計到登陸和最後提交的問題(這兩部分是和數據庫進行數據的交換)。因此在不肯定前進行壓力測試。在網上了解了一下Apache AB.php

軟件介紹:web

開發語言:jsp   數據庫sql2000 web服務 tomcat  服務器環境:win2003 、win2008(備選)sql

關於apache AB 測試:數據庫

Apache附帶的ab工具(本機使用的PHP環境是WAMP集成環境,ab工具位於apache\bin下)很是容易使用,ab能夠直接在Web服務器本地發起測試請求,這相當重要,由於有些時候咱們須要測試的僅僅是服務器的處理性能,並不想摻雜着網絡傳輸時間的影響。ab進行一切測試的本質都是基於HTTP的,因此能夠說ab對於Web服務器軟件的黑盒性能測試,得到的一切數據和計算結果,都是能夠經過HTTP來解釋的。apache

首先確保本地已經安裝apache 服務,讓程序跑起來,而後開始-運行進入命令行模式 ,進入apache 的bin目錄下tomcat

命令爲:  .\ab -n5000 -c500 http://localhost:8089/kaoshi/login.jsp   結果以下:服務器

D:\program\DedeAMPZForDebug\DedeAM/localhost:8089/kaoshi/login.jsp This is ApacheBench, Version 2.0.4 Copyright 1996 Adam Twiss, Zeus Te Copyright 2006 The Apache Software微信

Benchmarking localhost (be patient Completed 500 requests Completed 1000 requests Completed 1500 requests Completed 2000 requests Completed 2500 requests Completed 3000 requests Completed 3500 requests Completed 4000 requests Completed 4500 requests Finished 5000 requests Server Software:        Apache-Coy Server Hostname:        localhost Server Port:            8089網絡

Document Path:          /kaoshi/us Document Length:        928 bytes併發

Concurrency Level:      500 Time taken for tests:   3.375156 s Complete requests:      5000 Failed requests:        0 Write errors:           0 Total transferred:      6080000 by HTML transferred:       4640000 by Requests per second:    1481.41 [# Time per request:       337.516 [m Time per request:       0.675 [ms] Transfer rate:          1759.03 [K

Connection Times (ms) min  mean[+/-sd] med Connect:        0    0  14.6 Processing:    46  329 294.7    12 Waiting:        0  166 230.3     6 Total:         46  329 295.0    12

Percentage of the requests served 50%    125 66%    640 75%    656 80%    656 90%    656 95%    687 98%   1203 99%   1203 100%   1218 (longest request)

以上就是測試的結果,

下面開始解析這條命令語句:啓動ab,並出入三個參數(PS D:\apache\Apache2.2.21\bin> .\ab -n5000 -c500 http://localhost:8089\kaoshi/index.php

-n5000 表示請求總數爲5000

-c500 表示併發用戶數爲500

http://localhost:8089/kaoshi/index.php 表示這寫請求的目標URL

測試結果也一目瞭然,測試出的吞吐率爲:Requests per second: 1481.41 [#/sec] (mean)  初次以外還有其餘一些信息。

Server Software 表示被測試的Web服務器軟件名稱

Server Hostname 表示請求的URL主機名

Server Port 表示被測試的Web服務器軟件的監聽端口

Document Path 表示請求的URL中的根絕對路徑,經過該文件的後綴名,咱們通常能夠了解該請求的類型

Document Length 表示HTTP響應數據的正文長度

Concurrency Level 表示併發用戶數,這是咱們設置的參數之一

Time taken for tests 表示全部這些請求被處理完成所花費的總時間

Complete requests 表示總請求數量,這是咱們設置的參數之一

Failed requests 表示失敗的請求數量,這裏的失敗是指請求在鏈接服務器、發送數據等環節發生異常,以及無響應後超時的狀況。若是接收到的HTTP響應數據的頭信息中含有2XX之外的狀態碼,則會在測試結果中顯示另外一個名爲       「Non-2xx responses」的統計項,用於統計這部分請求數,這些請求並不算在失敗的請求中。

Total transferred 表示全部請求的響應數據長度總和,包括每一個HTTP響應數據的頭信息和正文數據的長度。注意這裏不包括HTTP請求數據的長度,僅僅爲web服務器流向用戶PC的應用層數據總長度。

HTML transferred 表示全部請求的響應數據中正文數據的總和,也就是減去了Total transferred中HTTP響應數據中的頭信息的長度。

Requests per second 吞吐率,計算公式:Complete requests / Time taken for tests

Time per request 用戶平均請求等待時間,計算公式:Time token for tests/(Complete requests/Concurrency Level)

Time per requet(across all concurrent request) 服務器平均請求等待時間,計算公式:Time taken for tests/Complete requests,正好是吞吐率的倒數。也能夠這麼統計:Time per request/Concurrency Level

Transfer rate 表示這些請求在單位時間內從服務器獲取的數據長度,計算公式:Total trnasferred/ Time taken for tests,這個統計很好的說明服務器的處理能力達到極限時,其出口寬帶的需求量。

Percentage of requests served within a certain time(ms) 這部分數據用於描述每一個請求處理時間的分佈狀況,好比以上測試,80%的請求處理時間都不超過6ms,這個處理時間是指前面的Time per request,即對於單個用戶而言,平均每一個請求的處理時間。

以上是此次的測試結果,同時分享給更多須要的人。若有問題歡迎指正。

———————-<hr>—————————

個人微信我的號:weilai_lee 歡迎朋友們加我。

你能夠關注本站公衆賬號:tt_zone  爲你分享更多關於互聯網、技術、創業等話題。

相關文章
相關標籤/搜索