首頁  >  文章  >  後端開發  >  使用Apache的ab工具實例詳解

使用Apache的ab工具實例詳解

零下一度
零下一度原創
2017-06-30 15:59:202353瀏覽

ab指令原理 
Apache的ab指令模擬多執行緒並發請求,測試伺服器負載壓力,也可以測試nginx、lighthttp、IIS等其它Web伺服器的壓力。
Apache附帶的ab工具(使用的PHP環境是WAMP整合環境,ab工具位於D:\wamp\bin\apache\Apache2.2.21\bin)非常容易使用。 ab指令對發出負載的電腦要求很低,既不會佔用很多CPU,也不會佔用太多的內存,但卻會給目標伺服器造成巨大的負載,因此是某些DDOS攻擊之必備良藥,老少皆宜。自己使用也須謹慎。否則一次上太多的負載,造成目標伺服器直接因記憶體耗光死機,而不得不硬重啟,得不償失。

在頻寬不足的情況下,最好是本機進行測試,建議使用內網的另一台或多台伺服器透過內網進行測試,這樣得出的數據,準確度會高很多。遠端對web伺服器進行壓力測試,往往效果不理想(因為網路延時過大或頻寬不足)

#下載安裝: 
##;O=A
找到httpd- 2.2.21-win32-x86-no_ssl.msi  

#參數文件: 

 



 



# 運作: 

在Windows系統下,開啟cmd指令列窗口,定位到apache安裝目錄的bin目錄下 
cd C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin

鍵入指令: 
ab -n 800 -c 800  http://192.168.0.10/
(-n發出800個請求,-c模擬800並發,相當800人同時訪問,後面是測試url)

ab -t 60 -c 100 http://192.168.0.10/

在60秒內發請求,一次100個請求。

  使用Apache的ab工具實例詳解//如果需要在url中帶參數,這樣做 

ab -t 60 -c 100 -T "text/plain" -p p.txt http://192.168.0.10/hello. html 

p.txt 是和ab.exe在一個目錄 使用Apache的ab工具實例詳解-曾祥展p.txt 中可以寫入參數,如  p=wdp&fq=78 
 









##結果參數解釋:
 
This is ApacheBench, Version 2.3  

Copyright 1996 Adam Twiss, Zeus Technology Ltd,# 

##Copyright 1996 Adam Twiss, Zeus Technology Ltd,# 

Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed##Licensed# to The Apache Software Foundation, 


Benchmarking 192.168.0.10 (be patient) 
Completed 100 requests 

Completed 200 requests 

Completed 300 requests##Completed 200 requests 

Completed 600 requests ###Completed 700 requests ###Completed 800 requests ###Finished 800 requests###### ##### 軟件名稱###Server Hostname:        192.168.0.10                表示請求的URL主機名###Server Port:            80                                           表示被測試的Web服務器軟件的監聽端口######Document Path:          /                                         表示請求的URL中的根絕對路徑,透過該文件的後綴名,我們一般可以了解該請求的類型###Document Length:        315 bytes             TP         

Concurrency Level:      800                       Time而言4 seconds    所有這些請求處理完成所花費的時間
Complete requests:      800             ##Failed requests:        0                失敗請求數量
Write errors:    
Non-2xx responses:      800 
Total transferred:      393600 bytes     網路化物##Requests per second:    875.22 [#/sec] (mean) 吞吐量-每秒請求數
Time per request:       914.052 [ms] (mean)       914.052 [ms] (mean)  | Time per request:       1.143 [ms] (mean, across all concurrent requests) 並發的每個請求平均消耗時間 
Transfer rate:       rec  4##Transfer rate:          42#Transfer rate:          42#Transfer rate:          42#Transfer rate:        網路流量過大導致回應時間延長的問題


網路上消耗的時間的分解: 
Connection Times (ms)  min  mean[+/-sd] median   max 
Connect: 0    1   0.5      1       3 

Processing:   245  534 125.2    570 6 189.1    409     669 

Total:        246  535 125.0   於 571   在場景中每個請求都有一個回應時間
其中50% 的使用者回應時間小於571 毫秒 
80 % 的使用者回應時間小於652 毫秒 
最大的回應時間小於684 毫秒 
Percentage of the requests served within a certain time (ms) 
  50%    571 
  66%    627 

  75%    646  627 

    6 
  95%    677 
98%    681 
  99%    682 
100%    684 (longest request)

這部分資料用於描述每個請求處理時間的分佈情況,例如以上測試,80%的請求處理時間都不超過6ms,這個處理時間是指前面的Time per request,也就是對於單一使用者而言,平均每個請求的處理時間。

以上是使用Apache的ab工具實例詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn