下面,筆者就以webbench爲例,來講解一下網站在上線之前壓力測試是如何做的。
安裝webbench
#wget http://home.tiscali.cz/~cz210552/distfiles/webbench-1.5.tar.gz#tarzxvfwebbench-1.5.tar.gz #cd webbench-1.5#make&& make install
進行壓力測試,併發200時。
# webbench-c 200-t 60 http://down.chinaz.com/index.php
參數解釋:-c爲併發數,-t爲時間(秒)
Webbench - Simple Web Benchmark 1.5Copyright(c) Radim Kolar 1997-2004, GPL Open SourceSoftware. Benchmarking:GEThttp://down.chinaz.com/index.php200 clients, running 60 sec. Speed=1454 pages/min,2153340 bytes/sec. Requests:1454 susceed,0 failed.
當併發200時,網站訪問速度正常
併發800時
#webbench-c 800-t 60 http://down.chinaz.com/index.php Webbench - Simple Web Benchmark 1.5Copyright(c) Radim Kolar 1997-2004, GPL Open SourceSoftware. Benchmarking:GEThttp://down.chinaz.com/index.php800 clients, running 60 sec. Speed=1194 pages/min,2057881 bytes/sec. Requests:1185 susceed,9 failed.
當併發連接爲800時,網站訪問速度稍慢
併發1600時
#webbench-c 1600-t 60 http://down.chinaz.com/index.php Webbench - Simple Web Benchmark 1.5Copyright(c) Radim Kolar 1997-2004, GPL Open SourceSoftware. Benchmarking:GEThttp://down.chinaz.com/index.php1600 clients, running 60 sec. Speed=1256 pages/min,1983506 bytes/sec. Requests:1183 susceed,73 failed.
當併發連接爲1600時,網站訪問速度便非常慢了
併發2000時
#webbench-c 2000-t 60 http://down.chinaz.com/index.php Webbench - Simple Web Benchmark 1.5Copyright(c) Radim Kolar 1997-2004, GPL Open SourceSoftware. Benchmarking:GEThttp://down.chinaz.com/index.php2000 clients, running 60 sec. Speed=2154 pages/min,1968292 bytes/sec. Requests:2076 susceed,78 failed.
當併發2000時,網站便出現"502 Bad Gateway",由此可見web服務器已無法再處理用戶訪問請求
總結:
1、壓力測試工作應該放到產品上線之前,而不是上線以後
2、測試時儘量跨公網進行,而不是內網
3、測試時併發應當由小逐漸加大,比如併發100時觀察一下網站負載是多少、打開是否流程,併發200時又是多少、網站打開緩慢時併發是多少、網站打不開時併發又是多少
4、 應儘量進行單元測試,如B2C網站可以着重測試購物車、推廣頁面等,因爲這些頁面佔整個網站訪問量比重較大
http://down.chinaz.com/server/201202/1671_1.htm