PS:在運維工做中,壓力測試是一項很重要的工做。好比在一個網站上線以前,能承受多大訪問量、在大訪問量狀況下性能怎樣,這些數據指標好壞將會直接影響用戶體驗。可是,在壓力測試中存在一個共性,那就是壓力測試的結果與實際負載結果不會徹底相同,就算壓力測試工做作的再好,也不能保證100%和線上性能指標相同。面對這些問題,咱們只能儘可能去千方百計去模擬。因此,壓力測試很是有必要,有了這些數據,咱們就能對本身作維護的平臺作到心中有數。php
Webbench是知名的網站壓力測試工具,它是由Lionbridge公司(http://www.lionbridge.com)開發。html
Webbench能測試處在相同硬件上,不一樣服務的性能以及不一樣硬件上同一個服務的運行情況。webbench的標準測試能夠向咱們展現服務器的兩項內容:每秒鐘相應請求數和每秒鐘傳輸數據量。webbench不但能具備便準靜態頁面的測試能力,還能對動態頁面(ASP,PHP,JAVA,CGI)進 行測試的能力。還有就是他支持對含有SSL的安全網站例如電子商務網站進行靜態或動態的性能測試。
Webbench最多能夠模擬3萬個併發鏈接去測試網站的負載能力。
官方主頁:http://home.tiscali.cz/~cz210552/webbench.htmljava
官方介紹:
web
Web Bench is very simple tool for benchmarking WWW or proxy servers. Uses fork() for simulating multiple clients and can use HTTP/0.9-HTTP/1.1 requests. This benchmark is not very realistic, but it can test if your HTTPD can realy handle that many clients at once (try to run some CGIs) without taking your machine down. Displays pages/min and bytes/sec. Can be used in more aggressive mode with -f switch.
一、WebBench安裝:
apache
wget http://www.ha97.com/code/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make
make install
二、WebBench使用:webbench -c 1000 -t 60 http://192.168.80.157/phpinfo.php
webbench -c 併發數 -t 運行測試時間 URL安全
Apache測試實例結果:
當併發300時,root [ ~ ]# webbench -c 300 -t 60 http://192.168.80.157/phpinfo.php
服務器
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.80.157/phpinfo.php
300 clients, running 60 sec.併發
Speed=24525 pages/min, 20794612 bytes/sec.
Requests: 24525 susceed, 0 failed.
每秒鐘響應請求數:24525 pages/min,每秒鐘傳輸數據量20794612 bytes/sec.運維
當併發1000時,已經顯示有87個鏈接failed了,說明超負荷了。
tcp
root [ ~ ]# webbench -c 1000 -t 60 http://192.168.80.157/phpinfo.php
Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
Benchmarking: GET http://192.168.80.157/phpinfo.php
1000 clients, running 60 sec.
Speed=24920 pages/min, 21037312 bytes/sec.
Requests: 24833 susceed, 87 failed.
併發1000運行60秒後產生的TCP鏈接數12000多個:
總結:一、壓力測試工做應該放到產品上線以前,而不是上線之後;二、測試時併發應當由小逐漸加大,好比並發100時觀察一下網站負載是多少、打開頁面是否流暢,併發200時又是多少、網站打開緩慢時併發是多少、網站打不開時併發又是多少;三、更詳細的進行某個頁面測試,如電商網站能夠着重測試購物車、推廣頁面等,由於這些頁面佔整個網站訪問量比重較大。