ab压力测试_CentOS安装压力测试工具ApacheBench(ab)
官方文檔:
https://httpd.apache.org/docs/2.4/programs/ab.html
ab原理:
ab命令會創建很多的并發訪問線程,模擬多個訪問者同時對某一URL地址進行訪問。它的測試目標是基于URL的,因此,既可以用來測試Apache的負載壓力,也可以測試nginx、lighthttp、tomcat、IIS等其它Web服務器的壓力。 ab命令對發出負載的計算機要求很低,既不會占用很高CPU,也不會占用很多內存,但卻會給目標服務器造成巨大的負載,其原理類似CC攻擊。自己測試使用也須注意,否則一次上太多的負載,可能造成目標服務器因資源耗完,嚴重時甚至導致死機。
Apache服務自帶了應該用于壓力測試的工具ab(ApacheBench),對應做一些簡單的壓力測試,它完全能夠勝任,本文主要介紹,在centos中不安裝Apache的情況下,安裝ab
#安裝步驟:
簡單用法:
參數很多,一般我們用 -c 和 -n 參數就可以了。
#ab -c 1000 -n 4000 http://www.yoursite.com/index #必須要具體到某頁面-n 總共發出4000個請求 -c 采用1000個并發(模擬1000個人同時訪問) 后面的網址表示測試的目標 URL (必須具體到某頁面)
返回結果參數說明:
Server Software 表示被測試的Web服務器軟件名稱,這里是Apache/2.2.19,它來自于http響應數據的頭信息,所以如果是我們自己編寫的Web服務器軟或者修改開源Web服務器軟件的源代碼,便可以隨意改寫這里的名稱。
vi /usr/local/apache/conf/httpd.conf #隱藏具體版本信息ServerSignature OffServerTokens ProdServer Hostname 表示請求的URL中的主機部分名稱,它來自于http請求數據的頭信息,這里我們請求的URL是http://localhost/index.html,所以主機名為localhost,說明我們的請求是從Web服務器端發起的。
Server Port 表示被測試的Web服務器軟件的監聽端口,為了方便測試,我們后面會對多個不同的Web服務器軟件使用不同的監聽端口。
Document Path 表示請求的URL中根絕對路徑,它同樣來自于http請求數據的頭信息,通過它的后綴名,我們一般可以理解該請求的類型。
Document Length 表示http響應數據的正文長度。
Concurrency Level 表示并發用戶數,這是我們設置的參數。
Time taken for tests 表示所有這些請求被處理完成花費的總時間。順便提一下,某些Apache版本如2.2.4附帶的ab,對于這一統計項存在一些計算上的bug,當總請求數較少時,其統計的總時間會無法小于0.1s。
Complete requests 表示總請求數,這是我們設置的相應參數。
Failed requests 表示失敗的請求數,這里的失敗是指請求的連接服務器、發送數據、接收數據等環節發生異常,以及無響應后超時的情況。對于超時時間的設置可以用ab的-t參數。 而如果接收到的http響應數據的頭信息中含有2xx以外的狀態碼,則會在測試結果顯示另一個名為“Non-2xx responses”的統計項,用于統計這部分請求數,這些請求并不算是失敗的請求。
Total transferred 表示所有請求的響應數據長度總和,包括每個http響應數據的頭信息和正文數據的長度。注意這里不包括http請求數據的長度,所以Total transferred代表了從Web服務器流向用戶PC的應用層數據總長度。通過使用ab的-v參數即可查看詳細的http頭信息。
HTML transferred 表示所有請求的響應數據中正文數據的總和,也就是減去了Total transferred中http響應數據中頭信息的長度。
Requests per second 這便是我們重點關注的吞吐率,它等于: Complete requests / Time taken for tests
Time per request 這便是前面提到的用戶平均請求等待時間,它等于: Time taken for tests / (Complete requests /Concurrency Level)
Time per request?(across all concurrent requests) 這便是前面提到的服務器平均請求處理時間,它等于: Time taken for tests / Complete requests 這正是吞吐率的倒數。同時,它也等于: Time per request / Concurrency Level
Transfer rate 表示這些請求在單位時間內從服務器獲取的數據長度,它等于: Total transferred / Time taken for tests 這個統計項可以很好的說明服務器在處理能力達到限制時,其出口帶寬的需求量。 利用前面介紹的有關帶寬的知識,不難計算出結果。
Percentage of the requests served within a certain time(ms) 這部分數據用于描述每個請求處理時間的分布情況,比如在以上測試結果中,80%請求的處理時間都不超過1ms,而99%的請求都不超過2ms。注意這里的處理時間,是指前面的Time per request,即對于單個用戶而言,平均每個請求處理的時間。
總結
以上是生活随笔為你收集整理的ab压力测试_CentOS安装压力测试工具ApacheBench(ab)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: hdp分享码2020_和平精英2020黄
- 下一篇: 如何升级浏览器_绿茶浏览器app下载安装