用著放心 為你的ASP程序作一個負(fù)載測試(2)_ASP教程
教程Tag:暫無Tag,歡迎添加,賺取U幣!
推薦:ASP:True or False,明明白白你的If語句流程通過學(xué)習(xí)ASP明明白白你的If語句流程。 以下為引用的內(nèi)容: If condition Then [statements1] Else [statements2] End If
Figure 2. Enter the URL in the Path field
這時候,你可以點(diǎn)工具條上的Run Script箭頭符號來執(zhí)行你的腳本(務(wù)必確保你在左邊的窗口點(diǎn)取了正確的腳本)。在產(chǎn)生一個概要的性能報告之前,這個腳本需要運(yùn)行大概1分鐘的時間。
分析測試結(jié)果
你可以點(diǎn)工具條上的Reports圖標(biāo)來看產(chǎn)生的報告。這將產(chǎn)生一個與Script tab相臨的新的tab。報告被存儲在一個大綱視圖里。首先,在你的報告下面點(diǎn)Result Codes,這個將給你一個快速的印象,這次測試是否出現(xiàn)了什么問題。如果你看到的狀態(tài)代碼不是200,你也許需要調(diào)查一下出現(xiàn)了什么問題,通常的問題包括署名和不正確的URL路徑。
點(diǎn)Overview,你將看到這個測試活動的一個簡要快速的分析。從ASP的技術(shù)角度看,Request per Second,是一個需要深入分析的關(guān)鍵值。這個值越高越好。通常,如果你不能從使用報告和預(yù)算中決定出一個特定的目標(biāo),你可以讓ASP 的Requests per Second值高于30,當(dāng)然這個ASP是沒有連數(shù)據(jù)庫或使用其他組件的。因為可以預(yù)見,連接數(shù)據(jù)庫將增加程序的負(fù)擔(dān)。
雖然有Request per Second這個計數(shù)器默認(rèn)包含在WAS里,你也許想增加其他的計數(shù)器。你可以在點(diǎn)了Perf Counters的圖標(biāo)后通過點(diǎn)Add Counter來增加其他的計數(shù)器。一個特別有用的計數(shù)器是ASP Requests Queued,這個計數(shù)器往往是在識別一個阻塞或長期駐留的頁面或組件時的關(guān)鍵。關(guān)于分析ASP性能的資源有:
· Tuning Internet Information Server Performance
· Navigating the Maze of Settings for Web Server Performance Optimization
· IIS 4 Resource Kit
影響性能和可測量性的因素
服務(wù)器組成,數(shù)據(jù)庫訪問,和其他因素會大大降低ASP的Request per Second值。不同的配置選擇也會起到不同的作用,在這里我要指出幾個常出現(xiàn)的因素:
· 如果你在訪問一個數(shù)據(jù)庫,你是否有做連接池?關(guān)于連接池的詳細(xì)資料請看Pooling in the Microsoft Data Access Components.
· 你是否在使用ASP Session 變量來存儲狀態(tài)?Session 變量會很快地影響可測性。它們需要服務(wù)器資源,而且如果你想增加機(jī)器以擴(kuò)展性能,它們會起阻礙作用,因為Session是與特定機(jī)器相關(guān)連的。無狀態(tài)是最大化可擴(kuò)展性的方法。關(guān)于Session的替代請參考這篇文章: HowTo: Persisting Values without Session.
· 你是否在Session狀態(tài)中存儲有Visual Basic的組件?現(xiàn)在就去掉它們。Session中的Visual Basic對象會導(dǎo)致線程相關(guān)性而且會干擾打擊IIS的線程池。這是一個復(fù)雜的主題,但是滿足它的經(jīng)驗方法是:不要在Session中存儲Single-threaded Apartment (STA) objects。如果你需要在Session中保留對象,它們應(yīng)該被標(biāo)記為”Both”,而且你需要自己聚合這些自由線程成為一個集合。Active Template Library (ATL)可以創(chuàng)建這樣的怪物。
· 你的網(wǎng)絡(luò)程序是被限定運(yùn)行在它自己的內(nèi)存空間的嗎?實(shí)際上我們推薦進(jìn)程保護(hù)。然而,如果你需要榨出一些額外的性能,在進(jìn)程中運(yùn)行你的網(wǎng)絡(luò)程序?qū)?jié)省一些交叉進(jìn)程集合的開銷。
· 當(dāng)涉及Microsoft Transaction Server (MTS) components時,如果組件是作為服務(wù)器包而運(yùn)行的而不是庫包,那么將會有明顯的性能區(qū)別。一個通常的建議是設(shè)置網(wǎng)絡(luò)程序在它自己的內(nèi)存空間中運(yùn)行,然后在庫包中運(yùn)行MTS組件。
模擬多用戶的情況
我會簡要的介紹如何在WAS中模擬多用戶請求的情況。你需要做兩件事:
1. 在Settings面板改變Concurrent Connections。
2. 在Users創(chuàng)建用戶,至少要創(chuàng)建多于你在Concurrent Connections里指定的用戶數(shù)。
要改變并發(fā)用戶數(shù),點(diǎn)Settings圖標(biāo)。如果少于100個用戶,你可以直接設(shè)置Stress Level,要模擬多于100個用戶,你還須設(shè)置Stress Multiplier�;竟綖椋河脩魯�(shù)(線程數(shù))= Stress Level * Stress Multiplier.如果要模擬1,000個用戶,你可以設(shè)置Stress Level為100而Stress Multiplier為10。
如果你在沒有設(shè)置足夠的用戶前嘗試運(yùn)行腳本,你將會得到一個警告。通過點(diǎn)Users圖標(biāo)可以修改你的用戶數(shù),你將在右邊的窗口看到一個默認(rèn)的Default組。雙擊Default組展開你的用戶列表,如果你被允許匿名訪問,那么你只要簡單的填入新用戶的代碼然后點(diǎn)Create就可以了。
運(yùn)行需要署名登錄的測試
如果你想運(yùn)行需要署名登錄的頁面,那么你需要創(chuàng)建合適的用戶名和密碼以便WAS在運(yùn)行時可以使用。這同樣是在Users設(shè)置的。你可以一開始就通過Remove All去掉當(dāng)前的用戶列表,然后添加你需要的用戶,你也可以選擇從文本文件導(dǎo)入用戶名和密碼。
但是無論如何,需要確保這些用戶擁有有效的帳號,而且他們都可以訪問IIS服務(wù)器。如果你使用的是BASIC基本認(rèn)證用戶帳號,你可以通過在你的瀏覽器提交證書來測試這個帳號,在文本文件寫出Request.ServerVariables("AUTH_USER")這個值將會有很大的幫助作用。我們修改后的ASP代碼將看起來是這樣的:
oTS.writeline("Session Id: " & Session.SessionId & chr(32) & _
"Time: " & Cstr(now()) & "AUTH USER: " & chr(32) & Request.ServerVariables("AUTH_USER"))
使用WAS的技巧和提示
作為結(jié)束,我會提供一些技巧和提示,還有一些經(jīng)驗總結(jié):
· 調(diào)整你的網(wǎng)站的日志文件的存儲,因為這個文件將會快速的增大(見IIS文檔)
· 通過設(shè)置注冊表中的HKEY_LOCAL_MACHINE\Software\Microsoft\WAS\SessionTrace的DWORD為1,你可以以調(diào)試的方式追蹤WAS的活動
· 如果你的WAS報告顯示錯誤,務(wù)必檢查Event Log,在工具外用瀏覽器瀏覽你的頁面,然后檢查服務(wù)器的日志:\WinNT\system32\LogFiles\W3SVCi
· 如果你的測試客戶端機(jī)器的處理器使用率超過了�,聂]殘硇枰砑癰嗟牟饈鑰突Ф
分享:ASP中Cache技術(shù)的應(yīng)用ASP從發(fā)布至今已經(jīng)7年了,使用ASP技術(shù)已經(jīng)相當(dāng)成熟,自從微軟推出了ASP.NET之后就逐漸停止了對ASP版本的更新。但是由于有很多人仍然習(xí)慣使用ASP來開發(fā)網(wǎng)站,所以,再次我將以一個簡單的例子來說
相關(guān)ASP教程:
- asp FSO 讀寫文件本文件實(shí)現(xiàn)代碼
- asp中isNull、isEmpty和空字符串的區(qū)別
- asp獲取用戶真實(shí)IP地址的方法
- asp連接sqlserver數(shù)據(jù)庫實(shí)現(xiàn)代碼
- asp中正則表達(dá)式過濾html代碼函數(shù)
- asp中g(shù)et post提交表單區(qū)別
- 網(wǎng)頁模板:ASP內(nèi)建對象Request
- xmlhttp的open方法使用詳解
- ASP的常用的自定義函數(shù)大全
- asp中用for循環(huán)的一個小技巧
- eWebEditor v3.8 列目錄
- ASP無組件分頁實(shí)現(xiàn)思路及代碼
- 相關(guān)鏈接:
- 教程說明:
ASP教程-用著放心 為你的ASP程序作一個負(fù)載測試(2)
。