Linux常用網絡工具:Http壓力測試之ab


ab的全稱是Apache Bench,是Apache自帶的網絡壓力測試工具,相比於LR、JMeter,是我所知道的 Http 壓力測試工具中最簡單、最通用的。

ab命令對發出負載的計算機要求很低,不會占用很高CPU和內存,但也能給目標服務器產生巨大的負載,能實現基礎的壓力測試。

在進行壓力測試時,最好與服務器使用交換機直連,以獲取最大的網絡吞吐量。

ab的安裝很簡單,安裝Apache會自動安裝,如果要單獨安裝ab,可以使用yum安裝:

yum -y install httpd-tools

ab命令選項


ab命令最基本的參數是-n和-c:

-n 執行的請求數量
-c 並發請求個數

其他參數:

-t 測試所進行的最大秒數
-p 包含了需要POST的數據的文件 -T POST數據所使用的Content-type頭信息 -k 啟用HTTP KeepAlive功能,即在一個HTTP會話中執行多個請求,默認時,不啟用KeepAlive功能

命令示例:

ab -n 1000 -c 100 http://www.baidu.com/

ab性能指標


使用ab命令測試的結果,可以參考其中的中文解釋:

復制代碼
Document Path:          /  ###請求的資源
Document Length:        50679 bytes ###文檔返回的長度,不包括相應頭 Concurrency Level: 3000 ###並發個數 Time taken for tests: 30.449 seconds ###總請求時間 Complete requests: 3000 ###總請求數 Failed requests: 0 ###失敗的請求數 Write errors: 0 Total transferred: 152745000 bytes HTML transferred: 152037000 bytes Requests per second: 98.52 [#/sec] (mean) ###平均每秒的請求數 Time per request: 30449.217 [ms] (mean) ###平均每個請求消耗的時間 Time per request: 10.150 [ms] (mean, across all concurrent requests) ###上面的請求除以並發數 Transfer rate: 4898.81 [Kbytes/sec] received ###傳輸速率 Connection Times (ms) min mean[+/-sd] median max Connect: 2 54 27.1 55 98 Processing: 51 8452 5196.8 7748 30361 Waiting: 50 6539 5432.8 6451 30064 Total: 54 8506 5210.5 7778 30436 Percentage of the requests served within a certain time (ms) 50% 7778 ###50%的請求都在7778Ms內完成 66% 11059 75% 11888 80% 12207 90% 13806 95% 18520 98% 24232 99% 24559 100% 30436 (longest request)
復制代碼

對壓力測試的結果重點關注吞吐率(Requests per second)、用戶平均請求等待時間(Time per request)指標:

1、吞吐率(Requests per second):

服務器並發處理能力的量化描述,單位是reqs/s,指的是在某個並發用戶數下單位時間內處理的請求數。某個並發用戶數下單位時間內能處理的最大請求數,稱之為最大吞吐率。

記住:吞吐率是基於並發用戶數的。這句話代表了兩個含義:

a、吞吐率和並發用戶數相關

b、不同的並發用戶數下,吞吐率一般是不同的

計算公式:總請求數/處理完成這些請求數所花費的時間,即

Request per second=Complete requests/Time taken for tests

必須要說明的是,這個數值表示當前機器的整體性能,值越大越好。

2、用戶平均請求等待時間(Time per request):

計算公式:處理完成所有請求數所花費的時間/(總請求數/並發用戶數),即:

Time per request=Time taken for tests/(Complete requests/Concurrency Level)

3、服務器平均請求等待時間(Time per request:across all concurrent requests):

計算公式:處理完成所有請求數所花費的時間/總請求數,即:

Time taken for/testsComplete requests

可以看到,它是吞吐率的倒數。

同時,它也等於用戶平均請求等待時間/並發用戶數,即

Time per request/Concurrency Level。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM