ab是apachebench命令的縮寫。ab是apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache伺服器進行**訪問壓力測試,也可以對或其它型別的伺服器進行壓力測試。比如nginx、tomcat、iis等
ab的原理:ab命令會建立多個併發訪問執行緒,模擬多個訪問者同時對某一url位址進行訪問。它的測試目標是基於url的,因此,它既可以用來測試apache的負載壓力,也可以測試nginx、lighthttp、tomcat、iis等其它web伺服器的壓力。ab命令對發出負載的計算機要求很低,它既不會占用很高cpu,也不會占用很多記憶體。但卻會給目標伺服器造成巨大的負載,其原理類似cc攻擊。自己測試使用也需要注意,否則一次上太多的負載。可能造成目標伺服器資源耗完,嚴重時甚至導致宕機。
//測試安裝是否成功
# ab -v
this is apachebench, version 2.3 <$revision: 1430300 $>
licensed to the apache software foundation,
# ab --help
或# man ab
詳情說明:-n在測試會話中所執行的請求個數。預設時,僅執行乙個請求。請求的總數量
-c一次產生的請求個數。預設是一次乙個。請求的使用者量
-t測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在乙個固定的總時間以內。預設時,沒有時間限制。
-v顯示版本號並退出。
伺服器併發處理能力的量化描述,單位是reqs/s,指的是在某個併發使用者數下單位時間內處理的請求數。某個併發使用者數下單位時間內能處理的最大請求數,稱之為最大吞吐率。記住:吞吐率是基於併發使用者數的。這句話代表了兩個含義:
a、吞吐率和併發使用者數相關
b、不同的併發使用者數下,吞吐率一般是不同的
計算公式:總請求數/處理完成這些請求數所花費的時間,即
request per second=complete requests/time takenfor tests
必須要說明的是,這個數值表示當前機器的整體效能,值越大越好。
併發連線數指的是某個時刻伺服器所接受的請求數目,簡單的講,就是乙個會話。要注意區分這個概念和併發連線數之間的區別,乙個使用者可能同時會產生多個會話,也即連線數。在http/1.1下,ie7支援兩個併發連線,ie8支援6個併發連線,firefox3支援4個併發連線,所以相應的,我們的併發使用者數就得除以這個基數。ab的命令引數比較多,我們經常使用的是-c和-n引數。結果如下:# ab -c 10 -n 100 :同時處理100個請求並執行10次index.php
-c10 表示併發使用者數為10
-n100 表示請求總數為100
server software: apache //被測試的httpd伺服器
server hostname: web.zabbix.com //請求的url主機名
server port: 443 //伺服器端口
ssl/tls protocol: tlsv1.2,ecdhe-rsa-aes128-gcm-sha256,2048,128
document path: /index.html //測試的頁面文件
document length: 208931 bytes //測試的文件大小
concurrency level: 10 //併發數
time taken for tests: 5.213 seconds //所有這些請求被處理完成所花費的總時間 單位秒
complete requests: 100 //總請求數量,這是我們設定的引數之一
failed requests: 0 //表示失敗的請求數量,這裡的失敗是指請求在連線伺服器、傳送資料等環節發生異常,以及無響應後超時的情況
write errors: 0
total transferred: 419326 bytes //所有請求的響應資料長度總和。包括每個http響應資料的頭資訊和正文資料的長度
html transferred: 417862 bytes //所有請求的響應資料中正文資料的總和,也就是減去了total transferred中http響應資料中的頭資訊的長度
requests per second: 0.38 [#/sec] (mean) //吞吐率,計算公式:complete requests/time taken for tests 總請求數/處理完成這些請求數所花費的時間
time per request: 2606.423 [ms] (mean, across all concurrent requests) //伺服器平均請求等待時間,計算公式:time taken for tests/complete requests,正好是吞吐率的倒數。也可以這麼統計:time per request/concurrency level
transfer rate: 78.56 [kbytes/sec] received //表示這些請求在單位時間內從伺服器獲取的資料長度,計算公式:total trnasferred/ time taken for tests,這個統計很好的說明伺服器的處理能力達到極限時,其出口寬頻的需求量。
connection times (ms)
min mean[+/-sd] median max
connect: 983 1124 199.8 1265 1265
processing: 2354 2460 149.3 2565 2565
waiting: 534 572 53.7 610 610
total: 3337 3584 349.1 3831 3831
percentage of the requests served within a certain time (ms)
50% 3831
66% 3831
75% 3831
80% 3831
90% 3831
95% 3831
98% 3831
99% 3831
100% 3831 (longest request)
Linux命令 ab 壓力測試工具
安裝 yum y install httpd tools示例 ab n 10 c 2 n 訪問次數 c 併發個數 其他引數 t 測試所進行的最大秒數 p 包含了需要post的資料的檔案 t post資料所使用的content type頭資訊 k 啟用http keepalive功能,即在乙個http...
linux之ab壓力測試
ab命令格式 ab命令放在apache目錄bin目錄下面,使用方法如下 ab n 3000 c 3000 此為伺服器下測試的頁面位址 其中 n代表每次併發量,c代表總共傳送的數量 2 測試結果分析 document path 請求的資源 document length 50679 bytes 文件返...
linux 下ab壓力測試
linux 下ab壓力測試 1.ab的簡介 ab是apachebench命令的縮寫。ab是apache自帶的壓力測試工具。ab非常實用,它不僅可以對apache伺服器進行 訪問壓力測試,也可以對或其它型別的伺服器進行壓力測試。比如nginx tomcat iis等 2.ab的原理 ab的原理 ab命...