Linux壓力測試命令ab

2021-10-24 01:15:36 字數 3478 閱讀 4550

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命...