1. 程式人生 > >網站壓力測試

網站壓力測試

用戶 toc lnmp ebe 技術分享 webbench zxvf dir 使用

一個網站或者博客到底能夠承受多大的用戶訪問量經常是我們在用VPS或者獨立服務器搭建網站了最關心的問題,還有不少人喜歡對LNMP或者LAMP進行一些優化以便提高Web性能,而優化後到底有多大的效果,就需要我們對網站進行服務器壓力測試了。

目前來說Webbench,Apache Bench,http_load是三款比較流行的網站服務器壓力Web性能測試工具,安裝和使用都非常簡單,只要有一臺VPS主機或者直接用本地電腦就可以開始測試,由於受網絡等各種因素的影響,測試結果不一定很準確,但可以當作參考。

Apache Bench又叫做AB,是Apache 附帶的一個小工具,專門用於 HTTP Server 的benchmark testing,ab命令會創建很多的並發訪問線程,模擬多個訪問者同時對某一URL進行訪問,可用來測試Apache的負載壓力,也可以測試nginx、lighthttp、IIS等其它Web服務器的壓力。

Webbench是由Lionbridge公司開發出來的一個網站壓力測試工具,可用於測試ASP,PHP,JAVA,CGI等服務器壓力,也可用於SSL的安全網站的負載能力進行測試,最多可以模擬3萬個並發連接去測試網站的負載能力,Webbench操作簡單,一行命令就可以顯示出服務器壓力。

http_load這是國外一個博主開發的基於linux平臺的性能測試工具,主要是以並行復用的方式運行,可以用來測試web服務器的吞吐量與負載,測試結果一目了然。Apache Bench,Webbench,http_load這三款網站服務器壓力測試工具還要根據測試者的主機性能來決定參數,防止把測試主機給搞成死機了。

1、要使用Apache Bench工具,只要VPS主機已經有了Apache就行了,如果安裝Apache,可直接運行命令:yum install httpd。

2、Apache Bench工具用法命令:ab -n 100 -c 50 https://www.qq.com/,“-n”表示:每次請求數,默認不能超過1024個,“-c”表示:1個請求的並發連接數,默認最大不能超過50000。註意C

3、上面的命令就是模擬50個並發連接每次以100個請求數來測試騰訊網站的Web性能。測試結果及相關的數據說明請看下圖:(點擊放大)

技術分享

4、為了避免因為網絡原因而導致服務器壓力測試結果不準確,一般可以用ab -n 100 -c 50 https://127.0.0.1/index.php 來測試自己服務器Web性能。

5、被測試的網站服務器可以在日誌中查看到Apache Bench工具訪問的記錄。(點擊放大)

技術分享

二、Webbench:最多模擬3萬個並發連接數測試壓力

1、Webbench最多可以模擬3萬個並發連接數來測試服務器壓力,可以設置壓力測試時間和測試請求的成功率。安裝Webbench命令:


wget https://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install

2、如果有錯誤,執行安裝:yum install ctags和yum install gcc,如果有出現沒有文件路徑錯誤,執行:mkdir -m 644 -p /usr/local/man/man1

技術分享

3、Webbench測試命令是:webbench -c 100 -t 10 https://www.qq.com/index.php,-c是並發數 -t是運行測試時間,即10秒鐘內中以每次100個請求進行測試。

4、這是運行Webbench測試結果,Speed顯示的是每分鐘響應請求數和每秒鐘傳輸數據量,Requests顯示的是成功請求數和失敗請求數。

技術分享

5、查看服務器日誌,可以看到有Webbench訪問的記錄。

技術分享

6、為準確得到服務器的承受壓力,測試時並發數可逐漸加大,如並發100時觀察一下網站負載是多少、打開頁面是否流暢,當網站打開緩慢時並發是多少、網站打不開時並發又是多少。

三、http_load:測試web服務器的吞吐量與負載

1、http_load是國外一個博主寫的一個基於Linux的性能測工具,小巧輕便,解壓縮後不到100k,下載安裝方法:


wget https://acme.com/software/http_load/http_load-12mar2006.tar.gz
tar xzvf http_load-12mar2006.tar.gz
cd http_load-12mar2006
mkdir /usr/local/man
make && make install

2、如果遇到錯誤,可以執行安裝:yum -y install gcc gcc-c++

技術分享

3、測試之前先執行進入目錄:cd http_load-12mar2006,然後再執行:vi url,輸入你想要測試的域名網址,保存退出。

技術分享

4、http_load測試的命令格式是:./http_load -p 100 -s 10 url ,-p表示並發進程數,-s表示持續時間,此命令表示在10秒鐘內以每次100個並發進程發起請求。

5、這是運行http_load後的結果演示:

技術分享

6、http_load有關參數解釋說明如下:


[[email protected] http_load-12mar2006]# ./http_load -p 100 -s 10 url
495 fetches, 100 max parallel, 2.24393e+07 bytes, in 10.0022 seconds
一共請求連接495次,最大並發線程100個,持續10.0022秒,總傳輸速率為 2.24393e+07 bytes

45332 mean bytes/connection
每次請求連接平均數據量

49.4891 fetches/sec, 2.24344e+06 bytes/sec
每秒的響應請求連接數,每秒傳輸的數據量

msecs/connect: 112.466 mean, 157.051 max, 103.031 min
每次連接平均響應時間,最大時間,最小時間

msecs/first-response: 1053.73 mean, 2466.83 max, 179.647 min
每次連接平均返回時間,最大,最小。

HTTP response codes:
  code 200 -- 495
HTTP返回碼:200 ,一共495次。

7、測試結果中,主要參考fetches/sec、msecs/connect數值,即服務器每秒能夠響應的查詢次數的數值來衡量性能。

四、服務器壓力Web性能測試小結

1、Apache Bench,Webbench,http_load對網站壓力Web性能進行測試時,為了得到更加客觀和準確的數值,應該從遠程訪問、局域網訪問和本地等多個方面進行全方位的測試。一般用127.0.0.1進行本機測試。

2、當然,單純數值判斷並不準確,還要參考CPU、內存的等消耗綜合考慮。這三款工具大家自己使用也須謹慎,防止一次上太多的負載,造成目標服務器直接因內存耗光死機,而不得不硬重啟,得不償失。

文章來自免費資源部落 https://www.freehao123.com/

網站壓力測試