Nginx使用webbench进行压力测试
在運維工作中,壓力測試是一項非常重要的工作。比如在一個網站上線之前,能承受多大訪問量、在大訪問量情況下性能怎樣,這些數據指標好壞將會直接影響用戶體驗。
但是,在壓力測試中存在一個共性,那就是壓力測試的結果與實際負載結果不會完全相同,就算壓力測試工作做的再好,也不能保證100%和線上性能指標相同。面對這些問題,我們只能盡量去想方設法去模擬。所以,壓力測試非常有必要,有了這些數據,我們就能對自己做維護的平臺做到心中有數。
目前較為常見的網站壓力測試工具有webbench、ab(apache bench)、tcpcopy、loadrunner。
webbench由Lionbridge公司開發,主要測試每秒鐘請求數和每秒鐘數據傳輸量,同時支持靜態、動態、SSL,部署簡單,靜動態均可測試。適用于小型網站壓力測試(單例最多可模擬3萬并發) 。
ab(apache bench)Apache自帶的壓力測試工具,主要功能用于測試網站每秒鐘處理請求個數,多見用于靜態壓力測試,功能較弱,非專業壓力測試工具。
tcpcopy基于底層應用請求復制,可轉發各種在線請求到測試服務器,具有分布式壓力測試功能,所測試數據與實際生產數據較為接近后起之秀,主要用于中大型壓力測試,所有基于tcp的packets均可測試。
loadrunner壓力測試界的泰斗,可以創建虛擬用戶,可以模擬用戶真實訪問流程從而錄制成腳本,其測試結果也最為逼真模擬最為逼真,并可進行獨立的單元測試,但是部署配置較為復雜,需要專業人員才可以。
下面,筆者就以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網站可以著重測試購物車、推廣頁面等,因為這些頁面占整個網站訪問量比重較大
轉載于:https://blog.51cto.com/huangby/1204372
總結
以上是生活随笔為你收集整理的Nginx使用webbench进行压力测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: poj 3177 Redundant P
- 下一篇: 流量暴涨擒凶记(转)