一個網站或者博客到底可以承受多大的用戶訪問量常常是咱們在用VPS或者獨立服務器搭建網站了最關心的問題,還有很多人喜歡對LNMP或者LAMP進行一些優化以便提升Web性能,而優化後到底有多大的效果,就須要咱們對網站進行服務器壓力測試了。php
目前來講Webbench,Apache Bench,http_load是三款比較流行的網站服務器壓力Web性能測試工具,安裝和使用都很是簡單,只要有一臺VPS主機或者直接用本地電腦就能夠開始測試,因爲受網絡等各類因素的影響,測試結果不必定很準確,但能夠看成參考。linux
Apache Bench又叫作AB,是Apache 附帶的一個小工具,專門用於 HTTP Server 的benchmark testing,ab命令會建立不少的併發訪問線程,模擬多個訪問者同時對某一URL進行訪問,可用來測試Apache的負載壓力,也能夠測試nginx、lighthttp、IIS等其它Web服務器的壓力。nginx
Webbench是由Lionbridge公司開發出來的一個網站壓力測試工具,可用於測試ASP,PHP,JAVA,CGI等服務器壓力,也可用於SSL的安全網站的負載能力進行測試,最多能夠模擬3萬個併發鏈接去測試網站的負載能力,Webbench操做簡單,一行命令就能夠顯示出服務器壓力。c++
http_load這是國外一個博主開發的基於linux平臺的性能測試工具,主要是以並行複用的方式運行,能夠用來測試web服務器的吞吐量與負載,測試結果一目瞭然。Apache Bench,Webbench,http_load這三款網站服務器壓力測試工具還要根據測試者的主機性能來決定參數,防止把測試主機給搞成死機了。web
一、要使用Apache Bench工具,只要VPS主機已經有了Apache就好了,若是安裝Apache,可直接運行命令:yum install httpd。apache
二、Apache Bench工具用法命令:ab -n 100 -c 50 https://www.qq.com/,「-n」表示:每次請求數,默認不能超過1024個,「-c」表示:1個請求的併發鏈接數,默認最大不能超過50000。注意C安全
三、上面的命令就是模擬50個併發鏈接每次以100個請求數來測試騰訊網站的Web性能。測試結果及相關的數聽說明請看下圖:(點擊放大)服務器
四、爲了不由於網絡緣由而致使服務器壓力測試結果不許確,通常能夠用ab -n 100 -c 50 https://127.0.0.1/index.php 來測試本身服務器Web性能。網絡
五、被測試的網站服務器能夠在日誌中查看到Apache Bench工具訪問的記錄。(點擊放大)併發
一、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
二、若是有錯誤,執行安裝:yum install ctags和yum install gcc,若是有出現沒有文件路徑錯誤,執行:mkdir -m 644 -p /usr/local/man/man1
三、Webbench測試命令是:webbench -c 100 -t 10 https://www.qq.com/index.php,-c是併發數 -t是運行測試時間,即10秒鐘內中以每次100個請求進行測試。
四、這是運行Webbench測試結果,Speed顯示的是每分鐘響應請求數和每秒鐘傳輸數據量,Requests顯示的是成功請求數和失敗請求數。
五、查看服務器日誌,能夠看到有Webbench訪問的記錄。
六、爲準確獲得服務器的承受壓力,測試時併發數可逐漸加大,如併發100時觀察一下網站負載是多少、打開頁面是否流暢,當網站打開緩慢時併發是多少、網站打不開時併發又是多少。
3、http_load:測試web服務器的吞吐量與負載
一、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
二、若是遇到錯誤,能夠執行安裝:yum -y install gcc gcc-c++
三、測試以前先執行進入目錄:cd http_load-12mar2006,而後再執行:vi url,輸入你想要測試的域名網址,保存退出。
四、http_load測試的命令格式是:./http_load -p 100 -s 10 url ,-p表示併發進程數,-s表示持續時間,此命令表示在10秒鐘內以每次100個併發進程發起請求。
五、這是運行http_load後的結果演示:
六、http_load有關參數解釋說明以下:
[root@None 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次。
七、測試結果中,主要參考fetches/sec、msecs/connect數值,即服務器每秒可以響應的查詢次數的數值來衡量性能。
一、Apache Bench,Webbench,http_load對網站壓力Web性能進行測試時,爲了獲得更加客觀和準確的數值,應該從遠程訪問、局域網訪問和本地等多個方面進行全方位的測試。通常用127.0.0.1進行本機測試。
二、固然,單純數值判斷並不許確,還要參考CPU、內存的等消耗綜合考慮。這三款工具你們本身使用也須謹慎,防止一次上太多的負載,形成目標服務器直接因內存耗光死機,而不得不硬重啓,得不償失。