apache的ab命令模擬多執行緒併發請求,測試伺服器負載壓力,也可以測試nginx、lighthttp、iis等其它web伺服器的壓力。
ab命令對發出負載的計算機要求很低,既不會占用很多cpu,也不會占用太多的記憶體,但卻會給目標伺服器造成巨大的負載,因此是某些ddos攻擊之必備良藥,老少皆宜。自己使用也須謹慎。否則一次上太多的負載,造成目標伺服器直接因記憶體耗光宕機,而不得不硬重啟,得不償失。
在頻寬不足的情況下,最好是本機進行測試,建議使用內網的另一台或者多台伺服器通過內網進行測試,這樣得出的資料,準確度會高很多。遠端對web伺服器進行壓力測試,往往效果不理想(因為網路延時過大或頻寬不足)
找到 httpd-2.2.21-win32-x86-no_ssl.msi
-n :總共的請求執行數,預設是1;
-c: 併發數,預設是1;
-t:測試所進行的總時間,秒為單位,預設50000s
-p:post時的資料檔案
-w: 以html表的格式輸出結果
執行測試用例:ab -n 1000 -c 100 -w http://localhost/index.html >>c:\1.html
上面的測試用例表示100併發的情況下,共測試訪問index.php指令碼1000次,並將測試結果儲存到c:\1.html檔案中。
//如果需要在url中帶引數,這樣做
ab -t 60 -c 100 -t "text/plain" -p p.txt
p.txt 是和ab.exe在乙個目錄
p.txt 中可以寫引數,如 p=wdp&fq=78
在windows系統下,開啟cmd命令列視窗,定位到apache安裝目錄的bin目錄下
cd c:\program files (x86)\apache software foundation\apache2.2\bin
鍵入命令:
ab -n 800 -c 800
(-n發出800個請求,-c模擬800併發,相當800人同時訪問,後面是測試url)
ab -t 60 -c 100
在60秒內發請求,一次100個請求。
document length: 315 bytes http響應資料的正文長度
concurrency level: 800
time taken for tests: 0.914 seconds 所有這些請求處理完成所花費的時間
complete requests: 800 完成請求數
failed requests: 0 失敗請求數
write errors: 0
non-2xx responses: 800
total transferred: 393600 bytes 網路總傳輸量
html transferred: 252000 bytes html內容傳輸量
requests per second: 875.22 [#/sec] (mean) 吞吐量-每秒請求數
time per request: 914.052 [ms] (mean) 伺服器收到請求,響應頁面要花費的時間
time per request: 1.143 [ms] (mean, across all concurrent requests) 併發的每個請求平均消耗時間
transfer rate: 420.52 [kbytes/sec] received 平均每秒網路上的流量,可以幫助排除是否存在網路流量過大導致響應時間延長的問題
網路上消耗的時間的分解:
connection times (ms)
min mean[+/-sd] median max
connect: 0 1 0.5 1 3
processing: 245 534 125.2 570 682
waiting: 11 386 189.1 409 669
total: 246 535 125.0 571 684
整個場景中所有請求的響應情況。在場景中每個請求都有乙個響應時間
其中 50% 的使用者響應時間小於 571 毫秒
80 % 的使用者響應時間小於 652 毫秒
最大的響應時間小於 684 毫秒
percentage of the requests served within a certain time (ms)
50% 571
66% 627
75% 646
80% 652
90% 666
95% 677
98% 681
99% 682
100% 684 (longest request)
//吞吐率,大家最關心的指標之一,相當於 lr 中的每秒事務數,後面括號中的 mean 表示這是乙個平均值
//使用者平均請求等待時間,大家最關心的指標之二,相當於 lr 中的平均事務響應時間,後面括號中的 mean 表示這是乙個平均值
//伺服器平均請求處理時間,大家最關心的指標之三
有時候進行壓力測試需要使用者登入,怎麼辦?
先用賬戶和密碼登入後,用開發者工具找到標識這個會話的cookie值(session id)記下來
如果只用到乙個cookie,那麼只需鍵入命令:
ab -n 100 -c key=value
如果需要多個cookie,就直接設header:
ab -n 100 -h 「cookie: key1=value1; key2=value2」
**:
--- end ---
apache ab 併發負載壓力測試
效能測試工具目前最常見的有以下幾種 ab http load webbench siege web polygraph等。ab是apache自帶的壓力測試工具,通過模擬多執行緒併發請求,測試伺服器負載壓力。ab非常實用,它不僅可以對apache伺服器進行 訪問壓力測試,也可以對或其它型別的伺服器進行...
apache ab併發負載壓力測試
ab命令原理 apache的ab命令模擬多執行緒併發請求,測試伺服器負載壓力,也可以測試nginx lighthttp iis等其它web伺服器的壓力。ab命令對發出負載的計算機要求很低,既不會占用很多cpu,也不會占用太多的記憶體,但卻會給目標伺服器造成巨大的負載,因此是某些ddos攻擊之必備良藥...
Apache ab併發負載壓力測試
ab命令原理 apache的ab命令模擬多執行緒併發請求,測試伺服器負載壓力,也可以測試nginx lighthttp iis等其它web伺服器的壓力。ab命令對發出負載的計算機要求很低,既不會占用很多cpu,也不會占用太多的記憶體,但卻會給目標伺服器造成巨大的負載,因此是某些ddos攻擊之必備良藥...