linux壓力測試

在壓力測試中存在一個共性,那就是壓力測試的結果與實際負載結果不會徹底相同,就算壓力測試工做作的再好,也不能保證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

  #tar zxvf webbench-1.5.tar.gz

  #cd webbench-1.5

  #make && make install

  進行壓力測試

  併發200時

  # webbench -c 200 -t 60 http://blog.luwenju.com/index.php

  參數解釋:-c爲併發數,-t爲時間(秒)

  Webbench - Simple Web Benchmark 1.5

  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

  Benchmarking: GET http://blog.luwenju.com/index.php

  200 clients, running 60 sec.

  Speed=1454 pages/min, 2153340 bytes/sec.

  Requests: 1454 susceed, 0 failed.

  當併發200時,網站訪問速度正常

  併發800時

  #webbench -c 800 -t 60 http://blog.luwenju.com/index.php

  Webbench - Simple Web Benchmark 1.5

  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

  Benchmarking: GET http://blog.luwenju.com/index.php

  800 clients, running 60 sec.

  Speed=1194 pages/min, 2057881 bytes/sec.

  Requests: 1185 susceed, 9 failed.

  當併發鏈接爲800時,網站訪問速度稍慢

  併發1600時

  #webbench -c 1600 -t 60 http://blog.luwenju.com/index.php

  Webbench - Simple Web Benchmark 1.5

  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

  Benchmarking: GET http://blog.luwenju.com/index.php

  1600 clients, running 60 sec.

  Speed=1256 pages/min, 1983506 bytes/sec.

  Requests: 1183 susceed, 73 failed.

  當併發鏈接爲1600時,網站訪問速度便很是慢了

  併發2000時

  #webbench -c 2000 -t 60 http://blog.luwenju.com/index.php

  Webbench - Simple Web Benchmark 1.5

  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

  Benchmarking: GET http://blog.luwenju.com/index.php

  2000 clients, running 60 sec.

  Speed=2154 pages/min, 1968292 bytes/sec.

  Requests: 2076 susceed, 78 failed.

  當併發2000時,網站便出現「502 Bad Gateway」,因而可知web服務器已沒法再處理用戶訪問請求

  總結:

  一、壓力測試工做應該放到產品上線以前,而不是上線之後

  二、測試時儘可能跨公網進行,而不是內網

  三、測試時併發應當由小逐漸加大,好比並發100時觀察一下網站負載是多少、打開是否流程,併發200時又是多少、網站打開緩慢時併發是多少、網站打不開時併發又是多少

  四、 應儘可能進行單元測試,如B2C網站能夠着重測試購物車、推廣頁面等,由於這些頁面佔整個網站訪問量比重較大php

相關文章
相關標籤/搜索