http測試工具ab

轉載:https://www.cnblogs.com/ym123/archive/2015/07/08/4629735.htmlhtml

 

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)指標:

一、吞吐率(Requests per second):

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

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

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

b、不一樣的併發用戶數下,吞吐率通常是不一樣的

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

Request per second=Complete requests/Time taken for tests

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

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

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

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

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

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

Time taken for/testsComplete requests

能夠看到,它是吞吐率的倒數。

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

Time per request/Concurrency Level。服務器

相關文章
相關標籤/搜索