CentOS7 ab壓力測試安裝與解釋

html

CentOS7 ab壓力測試安裝與解釋

2017年11月10日 18:43:25 moTzxx 閱讀數:4889更多前端

我的分類: Centos7nginx

版權聲明:本文爲博主原創文章,未經博主容許不得轉載。 https://blog.csdn.net/u011415782/article/details/78501799apache

背景

  • Apache Benchmark(簡稱ab) 是Apache安裝包中自帶的壓力測試工具 ,簡單易用
  • 在此提供 ab 在 centOS7 下的安裝和使用方法
  • 注:我的發現,以前安裝的centos6.5 默認已安裝了ab,具體緣由不明

①.ab(apache benchmark)安裝

  • 命令: yum -y install httpd-tools

②.ab測試的命令參數

  • 命令: ab 或 ab -help
  • 顯示命令參數以下

  • ab [可選的參數選項] 須要進行壓力測試的url
  • 參數說明:
此外,咱們再根據上面的用法介紹界面來詳細瞭解每一個參數選項的做用。

-n  即requests,用於指定壓力測試總共的執行次數。
-c  即concurrency,用於指定的併發數。
-t  即timelimit,等待響應的最大時間(單位:秒)。
-b  即windowsize,TCP發送/接收的緩衝大小(單位:字節)。
-p  即postfile,發送POST請求時須要上傳的文件,此外還必須設置-T參數。
-u  即putfile,發送PUT請求時須要上傳的文件,此外還必須設置-T參數。
-T  即content-type,用於設置Content-Type請求頭信息,例如:application/x-www-form-urlencoded,默認值爲text/plain。
-v  即verbosity,指定打印幫助信息的冗餘級別。
-w  以HTML表格形式打印結果。
-i  使用HEAD請求代替GET請求。
-x  插入字符串做爲table標籤的屬性。
-y  插入字符串做爲tr標籤的屬性。
-z  插入字符串做爲td標籤的屬性。
-C  添加cookie信息,例如:"Apache=1234"(能夠重複該參數選項以添加多個)。
-H  添加任意的請求頭,例如:"Accept-Encoding: gzip",請求頭將會添加在現有的多個請求頭以後(能夠重複該參數選項以添加多個)。
-A  添加一個基本的網絡認證信息,用戶名和密碼之間用英文冒號隔開。
-P  添加一個基本的代理認證信息,用戶名和密碼之間用英文冒號隔開。
-X  指定使用的和端口號,例如:"126.10.10.3:88"。
-V  打印版本號並退出。
-k  使用HTTP的KeepAlive特性。
-d  不顯示百分比。
-S  不顯示預估和警告信息。
-g  輸出結果信息到gnuplot格式的文件中。
-e  輸出結果信息到CSV格式的文件中。
-r  指定接收到錯誤信息時不退出程序。
-h  顯示用法信息,其實就是ab -help。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

③.ab的使用

  • 模擬併發請求100次,總共請求10000次
  • 命令模板: 
    ab -c 100 -n 10000 待測試網站(建議完整路徑)
  • 內容解釋:
Server Software:        nginx/1.10.2 (服務器軟件名稱及版本信息)
Server Hostname:        192.168.1.106(服務器主機名)
Server Port:            80 (服務器端口)
Document Path:          /index1.html. (供測試的URL路徑)
Document Length:        3721 bytes (供測試的URL返回的文檔大小)
Concurrency Level:      1000 (併發數)
Time taken for tests:   2.327 seconds (壓力測試消耗的總時間)
Complete requests:      5000 (的總次數)
Failed requests:        688 (失敗的請求數)
Write errors:           0 (網絡鏈接寫入錯誤數)
Total transferred:      17402975 bytes (傳輸的總數據量)
HTML transferred:       16275725 bytes (HTML文檔的總數據量)
Requests per second:    2148.98 [#/sec] (mean) (平均每秒的請求數) 這個是很是重要的參數數值,服務器的吞吐量 
Time per request:       465.338 [ms] (mean) (全部併發用戶(這裏是1000)都請求一次的平均時間)
Time  request:       0.247 [ms] (mean, across all concurrent requests) (單個用戶請求一次的平均時間)
Transfer rate:          7304.41 [Kbytes/sec] received 每秒獲取的數據長度 (傳輸速率,單位:KB/s)
...
Percentage of the requests served within a certain time (ms)
  50%    347  ## 50%的請求在347ms內返回 
  66%    401  ## 60%的請求在401ms內返回 
  75%    431
  80%    516
  90%    600
  95%    846
  98%   1571
  99%   1593
 100%   1619 (longest request)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27

④.壓力測試(示例)

【測試一】:

  • 命令 ab -c 100 -n 5000 http://192.168.1.106/index1.html

【測試二】:

  • 命令 ab -c 10000 -n 50000 http://192.168.1.106/index1.html

  • 簡單解釋:併發訪問量過大 服務器拒絕訪問,理論上經過系統配置,能夠有更好的承受能力

⑤.注意事項

  • 測試機與被測試機要分開
  • 不要對線上的服務器作壓力測試
  • 觀察測試工具ab所在機器,以及被測試的前端機的CPU、內存、網絡等都不超過最高限度的75%

⑥.文章推薦

相關文章
相關標籤/搜索