Webbench是有名的
網站壓力測試工具,能測試處在相同硬件上,不一樣服務的性能以及不一樣硬件上同一個服務的運行情況。webBech的標準測試能夠向咱們展現服務器的 兩項 內容:
每秒鐘相應請求數和每秒鐘傳輸數據量。webbench不但能具備便
準靜態頁面的測試能力,還能對動態頁面(ASP,PHP,JAVA,CGI)進 行測試的能力。還有就是他支持對含有SSL的安全網站例如電子商務網站進行靜態或動態的性能測試。
Webbench1.5下載地址:http://pan.baidu.com/s/1boVkWTx
解壓
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
編譯
make
提示須要安裝gcc
[root@mvpbang webbench-1.5]# make
cc -Wall -ggdb -W -O -c -o webbench.o webbench.c
make: cc: Command not found
make: *** [webbench.o] Error 127
yum install -y gcc
提示安裝ctags
[root@mvpbang webbench-1.5]# make
cc -Wall -ggdb -W -O -c -o webbench.o webbench.c
webbench.c: In function ‘alarm_handler’:
webbench.c:77:31: warning: unused parameter ‘signal’ [-Wunused-parameter]
static void alarm_handler(int signal)
cc -Wall -ggdb -W -O -o webbench webbench.o
ctags *.c
/bin/sh: ctags: command not found
make: [tags] Error 127 (ignored)
[root@mvpbang webbench-1.5]#
yum install -y ctags
把編譯好的二進制文件複製到bin目錄
root@mvpbang webbench-1.5]#
cp webbench /usr/bin
[root@mvpbang webbench-1.5]# webbench
webbench [option]... URL
-f|--force Don't wait for reply from server.
-r|--reload Send reload request - Pragma: no-cache.
-t|--time <sec> Run benchmark for <sec> seconds. Default 30.
-p|--proxy <server:port> Use proxy server for request.
-c|--clients <n> Run <n> HTTP clients at once. Default one.
-9|--http09 Use HTTP/0.9 style requests.
-1|--http10 Use HTTP/1.0 protocol.
-2|--http11 Use HTTP/1.1 protocol.
--get Use GET request method.
--head Use HEAD request method.
--options Use OPTIONS request method.
--trace Use TRACE request method.
-?|-h|--help This information.
-V|--version Display program version.
本地測試NGinx
參數說明:-c表示併發數,-t表示時間(秒)
[root@mvpbang webbench-1.5]# webbench -c 1000 -t 30 http://192.168.1.115/index.html
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.php
Benchmarking: GET http://192.168.1.115/index.html
200 clients, running 30 sec.html
Speed=492656 pages/min, 2003467 bytes/sec.
Requests: 246328 susceed, 87 failed.web
每秒鐘響應請求數:492656 pages/min,每秒鐘傳輸數據量20794612 bytes/sec.安全
當併發1000時,返回數:246328次返回成功,87個鏈接failed了,說明超負荷了。服務器
總結:
一、壓力測試工做應該放到產品上線以前,而不是上線之後;
二、測試時併發應當由小逐漸加大,好比並發100時觀察一下網站負載是多少、打開頁面是否流暢,併發200時又是多少、網站打開緩慢時併發是多少、網站打不開時併發又是多少;
三、更詳細的進行某個頁面測試,如電商網站能夠着重測試購物車、推廣頁面等,由於這些頁面佔整個網站訪問量比重較大。併發
舉個查看每分種處理多少pages的測試例子,計劃壓力測試2小時:
方法是使用Web Bench進行併發壓力測試,選擇的頁面是phpinfo.php,併發請求開始5個,每次循環增長5個進入下輪的循環,每一輪循環持續180s,到達最大200個併發時結束。這樣就能夠持續作2小時的測試。工具
[root@hexuweb102 webbench-1.5]$ for n in `seq 5 5 200` ; do echo -n $n " " ; webbench -c $n -t 60 http://127.0.0.1/phpinfo.php 2>/dev/null | grep Speed | awk '{print $1}' | awk -F= '{print $2}' ; echo ; donepost
# 能夠獲得下面數據:
clints Pages/Min
5 6824
10 6888
15 6849
20 6867
25 6892
30 6865
35 6846
40 6739
45 6699
50 6880
55 6831
60 6861
65 6847
70 6852
75 6818
80 6813
85 6858
90 6825
95 6840
100 6893
100 6871
105 6858
110 6890
115 6866
120 6893
125 6912
130 6857
135 6892
140 6874
145 6868
150 6891
155 6862
160 6893
165 6877
170 6872
175 6899
180 6855
185 6900
190 6882
195 6890
200 6904性能