apache的ab命令做壓力測試

工程師WWW發表於2016-04-19
1、命令格式
ab命令放在apache目錄bin目錄下面,使用方法如下
./ab -n 3000 -c 3000 http://www.test.com/
其中-n代表每次併發量,-c代表總共傳送的數量

2、測試結果分析
[root@Svr107 bin]# ./ab -n 3000 -c 3000 http://www.test.com/  
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.twioo.com (be patient)
Completed 300 requests
Completed 600 requests
Completed 900 requests
Completed 1200 requests
Completed 1500 requests
Completed 1800 requests
Completed 2100 requests
Completed 2400 requests
Completed 2700 requests
Completed 3000 requests
Finished 3000 requests


Server Software:        nginx/0.7.65
Server Hostname:        www.test.com
Server Port:            80

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)


3、如果用ab訪問的是他本機上的web伺服器,使用127.0.0.1或者是web伺服器上的網路卡IP地址,這個是不走網路裝置的,可以忽略網路消耗


4、ab使用的一些問題
a、ab命令在一般系統上面做測試時候,一般併發不能超過1024個,其實是因為因為系統限制每個程式開啟的最大檔案數為1024,可以用ulimit -a來檢視
open files                      (-n) 65536  ##這個我係統已經修改過
b、-n 可以指定最大請求數,但是不能超過50000個
c、-v n   當n>=2 時,可以顯示傳送的http請求頭,和響應的http頭及內容,壓力測試時不要這麼做
[root@Svr107 bin]# ./ab -n 1 -c 1 -v 2  http://www.test.com/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.test.com (be patient)...INFO: POST header == 
---
GET / HTTP/1.0
Host: www.test.com
User-Agent: ApacheBench/2.3
Accept: */*


---
LOG: header received:
HTTP/1.1 200 OK
Server: nginx/0.7.65
Date: Thu, 01 Dec 2011 13:08:16 GMT
Content-Type: text/html
Connection: close
Vary: Accept-Encoding
Content-Length: 50515
Last-Modified: Thu, 01 Dec 2011 13:08:04 GMT
Accept-Ranges: bytes

       
       
       
       
       
       
       
       
       
       
       
       <sc< div="" style="word-wrap: break-word;">
..done


Server Software:        nginx/0.7.65
Server Hostname:        www.test.com
Server Port:            80

Document Path:          /
Document Length:        50515 bytes

Concurrency Level:      1
Time taken for tests:   0.006 seconds
Complete requests:      1
Failed requests:        0
Write errors:           0
Total transferred:      50751 bytes
HTML transferred:       50515 bytes
Requests per second:    176.27 [#/sec] (mean)
Time per request:       5.673 [ms] (mean)
Time per request:       5.673 [ms] (mean, across all concurrent requests)
Transfer rate:          8736.39 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.0      0       0
Processing:     5    5   0.0      5       5
Waiting:        1    1   0.0      1       1
Total:          6    6   0.0      6       6

在做壓力測試的時候,一般情況下壓力測試客戶端接收到的資料量一定會遠大於傳送出去的資料量

參考

相關文章