ab壓力測試

2021-08-20 16:49:50 字數 3116 閱讀 4723

ab命令會建立多個併發訪問執行緒,模擬多個訪問者同時對某一url位址進行訪問。它的測試目標是基於url的,因此,它既可以用來測試apache的負載壓力,也可以測試nginx、lighthttp、tomcat、iis等其它web伺服器的壓力。

ab命令對發出負載的計算機要求很低,它既不會占用很高cpu,也不會占用很多記憶體。但卻會給目標伺服器造成巨大的負載,其原理類似cc攻擊。自己測試使用也需要注意,否則一次上太多的負載。可能造成目標伺服器資源耗完,嚴重時甚至導致宕機。

1./opt下面解壓:httpd-2.2.29.tar.gz

2.根目錄/下:mkdir -p

/usr/local/web/apache

3./opt下進入httpd-2.2.29資料夾:cd httpd-2.2.29執行以下命令

./configure  --prefix=/usr/local/web/apache--enable-shared=max  --enable-module=rewirte  --enable-module=so

make

make install

4.進入/usr/local/web/apache/bin目錄下,執行壓測命令

5.測試報告說明

6.具體引數含義說明

-n 在測試會話中所執行的請求個數(總數)

-c 一次產生的請求個數(單次請求次數)

-t 測試所進行的最大秒數。其內部隱含值是-n 50000,它可以使對伺服器的測試限制在乙個固定的總時間以內。預設時,沒有時間限制。

-p 包含了需要post的資料的檔案。

-p 對乙個中轉**提供basic認證信任。使用者名稱和密碼由乙個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即, 是否傳送了401認證需求**),此字串都會被傳送。

-t post資料所使用的content-type頭資訊。

-v 設定顯示資訊的詳細程度-4或更大值會顯示頭資訊,3或更大值可以顯示響應**(404,200等),2或更大值可以顯示警告和其他資訊。

-v 顯示版本號並退出。

-w 以html表的格式輸出結果。預設時,它是白色背景的兩列寬度的一張表。

-i 執行head請求,而不是get。

-x 設定屬性的字串。

-x 對請求使用**伺服器。

-y 設定屬性的字串。

-z 設定屬性的字串。

-c 對請求附加乙個cookie:行。其典型形式是name=value的乙個引數對,此引數可以重複。

-h 對請求附加額外的頭資訊。此引數的典型形式是乙個有效的頭資訊行,其中包含了以冒號分隔的字段和值的對(如,"accept-encoding:zip/zop;8bit")。

-a 對伺服器提供basic認證信任。使用者名稱和密碼由乙個:隔開,並以base64編碼形式傳送。無論伺服器是否需要(即,是否傳送了401認證需求**),此字串都會被傳送。

-h 顯示使用方法/幫助資訊。

-d 不顯示"percentage served within xx [ms] table"的訊息(為以前的版本提供支援)。

-e 產生乙個以逗號分隔的(csv)檔案,其中包含了處理每個相應百分比的請求所需要(從1%到100%)的相應百分比的(以微妙為單位)時間。由於這種格式已經「二進位製化」,所以比'gnuplot'格式更有用。

-g 把所有測試結果寫入乙個'gnuplot'或者tsv(以tab分隔的)檔案。此檔案可以方便地匯入到gnuplot,idl,mathematica,igor甚至excel中。其中的第一行為標題。

-i 執行head請求,而不是get。

-k 啟用http keepalive功能,即在乙個http會話中執行多個請求。預設時,不啟用keepalive功能。

-q 如果處理的請求數大於150,ab每處理大約10%或者100個請求時,會在stderr輸出乙個進度計數。此-q標記可以抑制這些資訊。

7.測試結果效能指標

在進行效能測試過程中有幾個指標比較重要:

1、吞吐率(requests per second)

伺服器併發處理能力的量化描述,單位是reqs/s,指的是在某個併發使用者數下單位時間內處理的請求數。某個併發使用者數下單位時間內能處理的最大請求數,稱之為最大吞吐率。

吞吐率是基於併發使用者數的。這句話代表了兩個含義:

a、吞吐率和併發使用者數相關

b、不同的併發使用者數下,吞吐率一般是不同的

計算公式:總請求數/處理完成這些請求數所花費的時間,即request per second=complete requests/time taken for tests必須要說明的是,這個數值表示當前機器的整體效能,值越大越好。

2、併發連線數(the number of concurrent connections)

併發連線數指的是某個時刻伺服器所接受的請求數目,簡單的講,就是乙個會話。

3、併發使用者數(concurrency level)

要注意區分這個概念和併發連線數之間的區別,乙個使用者可能同時會產生多個會話,也即連線數。在http/1.1下,ie7支援兩個併發連線,ie8支援6個併發連線,firefox3支援4個併發連線,所以相應的,我們的併發使用者數就得除以這個基數。

4、使用者平均請求等待時間(time per request)

5、伺服器平均請求等待時間(time per request:across all concurrent requests)

time taken for/testscomplete requests

可以看到,它是吞吐率的倒數。

time per request/concurrency level

ab 壓力測試

apache自帶的ab的壓力測試 以前安裝好apache總是不知道該如何測試apache的效能,現在總算找到乙個測試工具了。就是apache自帶的測試工具ab apache benchmark 在apache的bin目錄下。格式 ab options http hostname port path ...

ab壓力測試

1.我的環境是windows下的phpstudy,進入到apache bin目錄裡面有個ab.exe,壓力測試命令如下 ab.exe c 200 n 1000 2.mysql.php 如下 正常的邏輯思維,壓力增大後,導致資料庫num欄位成為負數,將下面 貼上到自己 下測試即可。在test資料庫下,...

壓力測試ab

首先確定下做壓力測試的工具和效能的監控工具,這個壓測的工具使用的是ab 監控工具使用的是nmon。看下linux主機上的ulimit n 的資料是多少,為改動過的是1024,最好要改的大一點。這個是linux下最大執行緒數,如果過小的話無法進行大並量的測試。ab經行壓力測試時的指令碼我用的形式為 1...