Web服務器搭建完成上線在即,其能夠承載多大的訪問量,響應速度、容錯能力等性能指標,所有這些是管理人員最想知道也最為擔心的。如何才能知曉這一切呢?通過工具進行Web壓力測試是個好方法。通過它可以有效地測試Web服務器的運行狀態和響應時間等性能指標。
一、測試環境:
hardsoft:CPU:Athlon XP2500+、內存512MB、硬盤80GB
Server OS:Windows Server 2003
IIS: 6.0
BBS: 動網 7.0
IP: 192.1681.20
Tool:Web Application Stress Tool
二、工具介紹
可用來進行Web壓力測試的工具有很多,比如微軟的Web Application Stress、Linux下的siege、功能全面的Web-CT等等,這些都是非常優秀的Web壓力測試工具。雖然這些工具給我們測試服務器承受能力帶來方便,但是它們卻是“雙刃劍”,攻擊者利用隨便一種比較全面的測試工具就可以對一台小型的Web服務器發動災難性的拒絕式攻擊。
下面筆者就以微軟的Web Application Stress Tool(簡稱WAST)為例進行一次Web壓力測試。這是由微軟的網站測試人員開發的專門用來進行實際網站壓力測試以一套工具。透過這套功能強大的壓力測試工具,管理人員可以在網站實際上線之前先網站進行如同真實環境下的測試,以找出系統潛在的問題,對系統進行進一步的調整、設置工作。
三、工具設置
下載並安裝WAST,過程及其簡單。然後運行WAST可以看到其界面非常簡潔,在對目標Web服務器進行壓力測試之前,首先要對它進行一些必要的設置。
1、設置並行連接數
點擊左側的“Defaults→Settings”打開設置面板。在Concurrent Connections下進行並行連接設置。Stress level (threads)是最少線程,Stress multiplier是最大線程。這裡的線程是指定程序在後台用多少線程進行請求,也就是相當於模擬多少個客戶機的連接,一般填寫 500~1000,因為這個線程數是根據本機的承受力來設置的,如果你對自己的機器配置有足夠信心的話,那麼可以設置得更高一些。(圖1)
圖1
2、設置持續時間
在“Test Run Time”中用來指定一次壓力測試需要持續的時間,分為天、小時、分、秒幾個單位級別,比如我們設置為1個小時。(圖2)
圖2
3、其余設置
“Rpquest Delay”設置延遲時間,我們設置為100~500。“Suspend”設置設定掛起時間,Warmup時間是初始化測試運行時間,cooldown時間就是指定結束階段的測試時間。Bandwith”指定帶寬瓶頸,允許你模擬從14.4 Kbps的modem連接到T1 (1.5 Mbps)的Local Area Network (LAN)連接的網絡帶寬。Redirects設置重定向時間,“Throughput”設置用戶、密碼頁面狀態保存等是否啟用,“Name resolution”設置是否進行名稱解析。所有以上的選項大家可以根據自己的需要進行設置。(圖3)
圖3
四、壓力測試
設置完成後就可以進行壓力測試,測試的步驟如下:
第一步:點擊工具欄上的“new script”按鈕在打開的面板中點擊“Nanual”按鈕創建一個新的測試項目。在打開的窗口中對它進行設置,在主選項中的server中填寫要測試的服務器的IP地址,這裡我們填寫192.168.1.20,在下方選擇測試的Web連接方式,這裡的方式Verb選擇get,path選擇要測試的Web頁面路徑,這裡填寫/Index.asp即動網的首頁文件,WAST可以設置更多的Path。(圖4)
圖4
第二步:在“Settings”的功能設置中將Stress level (threads)線程數設置為1000。完畢後,點工具中的灰色三角按鈕即可進行測試。測試過程中我們可以從服務器的任務管理器中看到CPU使用率已經 達到100%,損耗率達到最大見圖5。在CMD窗口中使用命令netstat -an,可以看到客戶端的IP地址在服務器上的80端口進行了非常多的連接見圖6,而且Web網站已經打不開了,提示過多用戶連接。(圖5)(圖6)
圖5
圖6
總結:通過Web壓力測試,管理員對Web服務器的抗壓能力有了大概的把握,從而根據實際需要可以進行服務器硬件擴展,同時也為系統設置、軟件選擇等提供了依據。總括來說,在Web服務器正式發布前進行壓力測試是非常必要的。