天天看點

圖解用WAS對Web伺服器進行壓力測試

你的Web伺服器能夠支援多少個并發使用者的通路呢?你遇到過伺服器遭受過DDOS的攻擊而癱瘓嗎?在這裡給大家介紹微軟網站測試人員開發的著名網站壓力測試軟體,Microsoft的Web Application Stress Tool(WAS,Web應用負載測試工具),而且還是免費的哦。

其下載下傳位址:

<a href="http://download.microsoft.com/download/a/8/2/a82e7ba7-c772-4ec4-b186-2cf147f42c11/setup.exe">[url]http://download.microsoft.com/download/a/8/2/a82e7ba7-c772-4ec4-b186-2cf147f42c11/setup.exe[/url]</a>

WAS是一款網站性能測試評估軟體。它通過模拟大量并發使用者同時通路伺服器,以擷取伺服器的承受能力。像這種軟體是把“雙刃劍”,就看你用在哪一方面啦。如果沒用好就會給你的伺服器造成一定的損失,用好了可以及時的發現你的伺服器能承受多大壓力負載。以便及時的采取相應的措施防範。

要對網站進行負載測試首先需要建立WAS腳本來模拟使用者通路等活動。

建立腳本的方法:

通過記錄浏覽器的活動;

通過導入IIS日志;

通過把WAS指向Web網站的内容;

或者手工制作。

這裡我用是通過記錄浏覽器事件生成的腳本的一部分,

 一:測試前的準備

1.  在測試前清空IE浏覽器其它網站的緩存和Cookies等臨時檔案。

二:測試腳本制作

1.  打開WAS,點選Record

2.勾選要記錄的活動

3.點選Finish

4.這時自動彈出一個浏覽器新視窗,即開始記錄你的浏覽的内容。這時開始通路你要測試的網頁。

5.在你通路你的伺服器時,WAS都記錄了這些活動,通路完成後點選Stop Recording結束記錄。

7.删除延遲小的元素

8.可以用Ctrl鍵同時選中多個,然後點選工具欄的删除按鈕删除

9.點選Settings,在這裡可以設定例如發起的連接配接數,熱身時間,帶寬限制,以及測試要運作多長時間等參數。

Stress Level和Stress multiplier這二個項決定了通路伺服器的并發連接配接的數量。其中Level是用戶端所産生的線程數,一個線程可以産生多個Socket并發請求,是以兩者的數值相乘所獲得的數值才是用戶端同時發起連接配接并發數。微軟建議這這個Stress Level值不要超過100。如果要模拟的并發連接配接數量超過100個,可以調整Stress multiplier的值或使用多個客戶機來測試

時間設定包括“Test Run Time”(測試運作時間)和“Request Delay”(停止響應)以及“Suspend”(挂起時間)三項。其中測試運作時間是以日、小時、分鐘、秒的格式來設定的,建議該項時間不宜太短,如果設定的并發數較多,那麼時間應該按比較增長,以便産生足夠多的請求;而停止時間是指連接配接時超出這個時間即作逾時處理;

warmup(熱身)時間,一般可以設定為1~3分鐘。在warmup期間WAS開始執行腳本,但不收集統計資料。warmup時間給MTS、資料庫以及磁盤緩沖等一個機會來做準備工作。如果在warmup時間内收集統計資料,這些操作的開銷将影響性能測試結果。

限制帶寬(throttle bandwidth)。帶寬限制功能能夠為測試模拟出Modem(14.k K,28.8 K,56 K)、ISDN(64 K,128 K)以及T1(1.54 M)的速度。使用帶寬限制功能可以精确地預測出客戶通過撥号網絡或其他外部連接配接通路Web伺服器所感受的性能。

三.測試壓力

1.點選工具欄的開始運作按鈕

2.點選Run Test開始測試

3.正在測試伺服器壓力,time left的時間為剩餘時間.如果設定了熱身時間則會先出現倒計時為WARMUP的

4.如果提示RPC服務不可用,請檢視PRC服務是否開啟,并設定成自動. 還可能是你的腳本錯誤,這種情況下删除目前腳本,重新收集就沒問題啦

5.這時可以用netstat –an 來檢視是否開啟了很多連接配接,其中state欄established的表示已連接配接上

6.檢視CPU大部分程序都被Webtool所占用

7.檢視CPU的使用率

8.用性能螢幕檢視目前性能

9.檢視伺服器端的性能

四.檢視測試報告,分析資料

1.點選工具欄的報告,檢視測試報告

2.着重檢視“Socket Errors”部分和“Result Codes”部分。其中Socket Errors部分共分為Connect、Send 、Recv和Timeouts。其中Connect表示用戶端不能與伺服器取得連接配接的次數;Send表示用戶端不能正确發送資料到伺服器的次數;Recv表示用戶端不能正确從伺服器連接配接次的次數;Timeouts表示逾時的線程數目。如果這四個數值都比較小,甚至為0則說明這個伺服器是經得起考驗的;如果數值居高不下,甚至接近設定的并發數,那麼則要好好的檢查你的伺服器了

3.速度

4連接配接數,伺服器IP,.時間參數

5.測試最好由多台客戶機來測試,不要在一台測試機上設定超大的連接配接數Stress Level值,且這些測試機分布在不同的地方。在你測試伺服器的内網會出現網頁無法顯示,通路其他網站的網頁也打不開,這時可以讓不跟你在同一個區域網路内的朋友通路試一下你的伺服器。不斷的增加或減少連接配接數,經過多次測試才知道這個伺服器能承受多大壓力。如果是IIS搭建的伺服器還可以修改允許的最大連接配接數。得到資料後分析資料,伺服器資源分布,響應處理速度,大量使用者或遭到攻擊時該采取哪些相應的措施,以及性能優化。

(為了大家更好的通路51CTO,請大家不要以51cto為伺服器做壓力測試。我這裡隻是為了宣傳51cto才用的,并設定的連接配接數也不大。)

本文轉自 idyllic_cyty 51CTO部落格,原文連結:http://blog.51cto.com/aizzw/123291