使用:
其中,-c表示併發數為10,-n表示總請求個數為1000,-p表示請求的資料放在了post.txt中,-t表示請求的格式,http....表示待測試的伺服器。
效能壓力測試是伺服器**效能調優過程中必不可缺少的一環。只有讓伺服器處在高壓情況下,才能真正體現出軟體、硬體等各種設定不當所暴露出的問題。
效能測試工具目前最常見的有以下幾種:ab、http_load、webbench、siege。
ab是apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache伺服器進行**訪問壓力測試,也可以對或其它型別的伺服器進行壓力測試。
方法1:原始碼安裝apache,apache安裝完畢後ab命令存放在apache安裝目錄的bin目錄下。
# 檢視ab是否可用,ab命令預設存放在/usr/bin目錄下
which ab
方法2:直接安裝apache的工具包httpd-tools。
# 安裝工具包
# 檢視ab是否安裝成功,可以切換到上述目錄下,使用ab –v命令進行檢測。如下:
ab -v
有關ab命令的使用,我們可以通過幫助命令進行檢視。如下:
ab --help
# 給幾個常用的引數以及其解釋
-n 在測試會話中所執行的請求個數。預設時,僅執行乙個請求。
-c 一次產生的請求個數。預設是一次乙個。
-t 測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在乙個固定的總時間以內。預設時,沒有時間限制。
-p 包含了需要post的資料的檔案。
-t post資料所使用的content-type頭資訊。
1、吞吐率(requests per second)
伺服器併發處理能力的量化描述,單位是reqs/s,指的是在某個併發使用者數下單位時間內處理的請求數。某個併發使用者數下單位時間內能處理的最大請求數,稱之為最大吞吐率。
記住:吞吐率是基於併發使用者數的。這句話代表了兩個含義:
a、吞吐率和併發使用者數相關
b、不同的併發使用者數下,吞吐率一般是不同的
計算公式:總請求數/處理完成這些請求數所花費的時間,即
request per second=complete requests/time taken for tests
必須要說明的是,這個數值表示當前機器的整體效能,值越大越好。
2、併發連線數(the number of concurrent connections)
併發連線數指的是某個時刻伺服器所接受的請求數目,簡單的講,就是乙個會話。
3、併發使用者數(concurrency level)
要注意區分這個概念和併發連線數之間的區別,乙個使用者可能同時會產生多個會話,也即連線數。在http/1.1下,ie7支援兩個併發連線,ie8支援6個併發連線,firefox3支援4個併發連線,所以相應的,我們的併發使用者數就得除以這個基數。
4、使用者平均請求等待時間(time per request)
time per request=time taken for tests/(complete requests/concurrency level)
5、伺服器平均請求等待時間(time per request:across all concurrent requests)
time taken for/testscomplete requests
可以看到,它是吞吐率的倒數。
time per request/concurrency level
使用最開始的命令,測試結果如下:
this is apachebench, version 2.3 <$revision: 1430300 $>
licensed to the apache software foundation,
benchmarking 0.0.0.0 (be patient)
completed 100 requests
completed 200 requests
completed 300 requests
completed 400 requests
completed 500 requests
completed 600 requests
completed 700 requests
completed 800 requests
completed 900 requests
completed 1000 requests
finished 1000 requests
server software: gunicorn/20.0.4 # 表示被測試的web伺服器軟體名稱。
server hostname: 0.0.0.0 # 表示請求的url主機名。
server port: 5000 # 表示被測試的web伺服器軟體的監聽埠。
document path: /bert/embedding # 表示請求的url中的根絕對路徑,通過該檔案的字尾名,我們一般可以了解該請求的型別。
document length: 1097 bytes # 表示http響應資料的正文長度。
concurrency level: 10 # 表示併發使用者數,這是我們設定的引數之一。
time taken for tests: 7.245 seconds # 表示所有這些請求被處理完成所花費的總時間。
complete requests: 1000 # 表示總請求數量,這是我們設定的引數之一。
failed requests: 0 # 表示失敗的請求數量,這裡的失敗是指請求在連線伺服器、傳送資料等環節發生異常,以及無響應後超時的情況。如果接收到的http響應資料的頭資訊中含有2xx以外的狀態碼,則會在測試結果中顯示另乙個名為「non-2xx responses」的統計項,用於統計這部分請求數,這些請求並不算在失敗的請求中。
write errors: 0 #
total transferred: 1259000 bytes # 表示所有請求的響應資料長度總和,包括每個http響應資料的頭資訊和正文資料的長度。注意這裡不包括http請求資料的長度,僅僅為web伺服器流向使用者pc的應用層資料總長度。
total body sent: 527000
html transferred: 1097000 bytes # 表示所有請求的響應資料中正文資料的總和,也就是減去了total transferred中http響應資料中的頭資訊的長度。
requests per second: 138.02 [#/sec] (mean) # 吞吐率
time per request: 72.452 [ms] (mean) # 使用者平均請求等待時間
time per request: 7.245 [ms] (mean, across all concurrent requests) # 伺服器平均請求等待時間,
transfer rate: 169.70 [kbytes/sec] received
71.03 kb/s sent
240.73 kb/s total # 表示這些請求在單位時間內從伺服器獲取的資料長度,計算公式:total trnasferred/ time taken for tests,這個統計很好的說明伺服器的處理能力達到極限時,其出口寬頻的需求量。
connection times (ms)
min mean[+/-sd] median max
connect: 0 0 0.0 0 0
processing: 12 70 37.3 64 278
waiting: 12 70 37.1 63 278
total: 12 70 37.3 64 278
percentage of the requests served within a certain time (ms)
50% 64 # 50分位的請求個數占用的時間
66% 80
75% 91
80% 98
90% 118
95% 136
98% 174
99% 198
100% 278 (longest request)
參考:1.言簡意賅:
2.原理多一些:
3.原理條條框框:
ab壓測工具
root localhost yum install y httpd tools 安裝ab工具 root localhost ab c 10 n 1000 指定併發請求數為10,總請求數為1000,對進行壓力測試 this is apachebench,version 2.3 revision 14...
AB 壓測工具命令
n 即requests,用於指定壓力測試總共的執行次數。c 即concurrency,用於指定的併發數。t 即timelimit,等待響應的最大時間 單位 秒 b 即windowsize,tcp傳送 接收的緩衝大小 單位 位元組 p 即postfile,傳送post請求時需要上傳的檔案,此外還必須設...
AB壓測工具安裝及使用
ab是apache bench的簡稱,apache bench是款簡單的 壓力測試工具,也可將它稱為命令列工具,通過apachebench命令可以建立很多的併發訪問執行緒,模擬多個訪問者同時對某一url位址進行訪問,主要用來測試目標伺服器的負載壓力。ab命令會建立多個併發訪問執行緒,模擬多個訪問者同...