天天看點

使用webbench進行壓力測試

軟體名稱

簡介

優缺點

webbench

由Lionbridge公司開發,主要測試每秒鐘請求數和每秒鐘資料傳輸量,同時支援靜态、動态、SSL

部署簡單,靜動态均可測試。适用于小型網站壓力測試(單例最多可模拟3萬并發)

ab(apache bench)

Apache自帶的壓力測試工具,主要功能用于測試網站每秒鐘處理請求個數

多見用于靜态壓力測試,功能較弱,非專業壓力測試工具

tcpcopy

基于底層應用請求複制,可轉發各種線上請求到測試伺服器,具有分布式壓力測試功能,所測試資料與實際生産資料較為接近

後起之秀,主要用于中大型壓力測試,所有基于 tcp的packets均可測試

loadrunner

壓力測試界的泰鬥,可以建立虛拟使用者,可以模拟使用者真實通路流程進而錄制成腳本,其測試結果也最為逼真

模拟最為逼真,并可進行獨立的單元測試,但是部署配置較為複雜,需要專業人員才可以。

(1)安裝webbench

如果出現缺少xx檔案,建立即可

(2)進行壓力測試,在另一台server上發起測試,因為很耗記憶體

并發200時

參數解釋:-c為并發數,-t為時間(秒)

nginx.conf 内 worker_connections  1024;(測試的時候必須小于等于這個允許的并發數)

從200往上加,使用  grep 'GET /' /var/log/nginx/access.log | grep '10/Sep/2014'|wc -l   , grep 'GET /' /var/log/apache2/access.log | grep '10/Sep/2014'|wc -l     指令分别統計nginx伺服器和兩個負載伺服器接收到的包

關閉iptables後(centos :service iptables stop   ubtuna:ufw disable)

并發600時

使用webbench進行壓力測試
使用webbench進行壓力測試
使用webbench進行壓力測試

檢視了/var/log/apache2/error.log有很多無法通路的問題,估計是壓力測試量太大了。配置有待優化,在網上看到講Apache2.conf的優化,apache2ctl -l檢視支援哪種模式,我的是prefork.c,則将兩個均衡server的apache2.conf檔案修改:

<IfModule mpm_prefork_module>

    StartServers          5

    MinSpareServers       5

    MaxSpareServers      6

    ServerLimit         550

    MaxClients          500

  MaxRequestsPerChild   10000

</IfModule>

修改此指令的值必須完全停止服務後再啟動才能生效,先停止再啟動以restart方式重新開機動将不會生效。 ServerLimit       必須放在MaxClients上面 且值>=MaxCliens

并發1000測試:

使用webbench進行壓力測試
使用webbench進行壓力測試
使用webbench進行壓力測試

697+627=1324  ,丢了52次請求,比之前好了點

對upstream處理:

使用ip_hash時:

使用webbench進行壓力測試
使用webbench進行壓力測試
使用webbench進行壓力測試

沒有起到均衡,因為測試時ip固定

使用RR輪詢:

使用webbench進行壓力測試
使用webbench進行壓力測試
使用webbench進行壓力測試
使用webbench進行壓力測試

剛開始在upstream内有一個空格,導緻均衡效果差,相對于135server,138請求很少:

使用webbench進行壓力測試
使用webbench進行壓力測試

删除空行後基本均衡,可是空行應該不影響配置檔案啊,在網上也沒查到結果,是不是在進行壓力測試時,在通路量很大的情況下也相當于在配置檔案内加入很多空行???

本文轉自 轉身撞牆角 51CTO部落格,原文連結:http://blog.51cto.com/chentianwang/1701575

繼續閱讀