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