共用方式為


負載測試的考量

本主題提供在 Visual Studio Ultimate中執行大型負載測試的秘訣。 將會討論下列主題:

選擇適當的負載模式

選擇適當的連接模型

取樣率和資料收集

考慮時間

設定 Web 效能測試要求的回應時間目標

在收集百分位數資料中包含計時詳細資料

設定新使用者的百分比屬性

啟用 ASP.NET 分析工具

啟用虛擬使用者記錄

啟用 SQL 追蹤

維持適當數目的代理程式電腦

選擇適當的負載模式

負載模式有三種類型:常數、逐步執行和以目標為依據。 若要選擇適合您的負載測試之負載模式,必須了解每一種類型的優點。 如需詳細資訊,請參閱編輯負載模式以模型化虛擬使用者活動

常數

當您想要在一段很長時間,以相同的使用者負載執行您的負載測試時,常數負載模式會很有用。 如果您以常數負載模式指定高使用者負載,建議同時指定負載測試的準備時間。 當您指定了準備時間,可以避免數百名新使用者工作階段同時點擊而使網站超過負荷。

步驟

步驟負載模式是最常用也最有用的負載模式之一,因為它可讓您監視使用者負載增加時的系統效能。 在使用者負載增加時監視系統,可讓您判斷可接受之回應時間所能支援的使用者數目,或相反地,判斷效能開始變得無法接受時的使用者數目。

如果每個步驟都加入大量使用者 (例如,超過 50 位使用者),請考慮使用 [逐步遞增時間] 屬性來錯開步驟中使用者的開始時間。 如需詳細資訊,請參閱 HOW TO:指定步驟負載模式的逐步遞增時間屬性

以目標為依據

以目標為依據負載模式與步驟負載模式類似,因為使用者負載通常都隨著時間而增加。但是以目標為依據負載模式可讓您指定當部分效能計數器達到某特定等級時,負載便應停止增加。 例如,您可以使用以目標為依據負載模式持續增加負載,直到其中一台目標伺服器變成 75% 忙碌的狀態時,接著便將負載維持固定。

如果預先定義的負載模式都不符合您的需求,也可以實作控制使用者負載 (與負載測試回合一樣) 的自訂負載測試外掛程式。 如需詳細資訊,請參閱建立和使用負載和 Web 效能測試的自訂外掛程式

選擇適合的 Web 效能測試連接模型

負載測試回合設定會使用 [WebTest 連接模型] 屬性,針對 Web 伺服器的使用者連接模型支援不同的選項。 連接模型有三種類型:每使用者連接、連接集區和每一測試反覆項目的連接。 若要選擇適合您的負載測試之連接模型,必須了解每一種類型的優點。

個別使用者連接

個別使用者連接模型可以模擬非常真實的瀏覽器行為。 每位執行 Web 效能測試的虛擬使用者最多會針對每個 Web 伺服器使用六個連接。 專屬於該虛擬使用者的 Web 伺服器連接會保持開啟狀態。 在 Web 效能測試發出第一個要求時,便會建立第一個連接。 當某個頁面包含一個以上的相依要求時,可能會使用其他連接;這些要求可能會使用其他連接平行發出。 舊版瀏覽器最多會針對每個 Web 伺服器使用兩個連接,不過 FireFox 3 和 Internet Explorer 8 最多會針對每個 Web 伺服器使用 6 個連接。 在整個負載測試中,虛擬使用者將重複使用這些相同的連接。

每使用者連接模型的缺點在於,代理程式電腦上維持開啟的連接數目可能高達使用者負載的六倍,甚至更高 (如果以多個 Web 伺服器為目標的話),而且支援這種高連接計數的資源,可能會限制可從單一負載測試代理程式驅動的使用者負載。

連接集區

連接集區模型會讓多個虛擬 Web 效能測試使用者共用與 Web 伺服器的連接,節省負載測試代理程式上的資源。 在連接集區模型中,連接集區大小會指定負載測試代理程式與 Web 伺服器之間的最大連接數。 如果使用者負載大於連接集區大小,由不同虛擬使用者所執行的 Web 效能測試就會共用一個連接。 這是最適合用來將大部分負載導入應用程式層的模型。

共用連接表示一個 Web 效能測試在發出要求之前,可能必須等待正在使用這個連接的另一個 Web 效能測試。 Web 效能測試在提交要求之前所等待的平均時間,都會由負載測試效能計數器的 [平均連接等候時間] 追蹤。 這個時間應該要小於頁面的平均回應時間, 否則,連接集區大小就有可能不足。

每一測試反覆項目的連接

每一測試反覆項目的連接會在每個測試反覆項目之後關閉連接,並且針對下一個反覆項目開啟新的連接。

這項設定會將大部分壓力放在網路登入上。 除非這是您的需求,否則建議使用上述其中一個選項。

取樣率和資料收集

請依照負載測試的時間長度選擇適當的取樣率。 對於每一個效能計數器,小的取樣率 (例如五秒) 比大的取樣率能收集更多資料。 長時間收集大量資料可能會導致磁碟空間錯誤。 若為長時間的負載測試,您可以增加取樣率,以便減少所收集的資料量。 效能計數器的數量也會影響收集的資料量。 對於測試中的電腦而言,降低計數器數量將會減少所收集的資料量。

您必須以實驗決定,對您的特定負載測試而言,什麼取樣率會運作得最好。 不過,下列表格提供建議的取樣率,供您開始使用。

負載測試持續期間

建議取樣率

< 1 小時

5 秒

1 - 8 小時

15 秒

8 - 24 小時

30 秒

> 24 小時

60 秒

考慮時間

Web 效能測試要求的考慮時間,對於合理回應時間可支援的使用者人數有很重大的影響。 將考慮時間由 2 秒變更為 10 秒,通常可讓您模擬 5 倍數量的使用者。 不過,如果您的目標是要模擬真實的使用者,應該根據您所設想的網站使用者行為方式來設定考慮時間。 增加考慮時間和使用者人數不必然會增加 Web 伺服器的額外負荷。 如果網站已經驗證過,所使用的配置類型將會影響效能。

如果您停用 Web 效能測試的考慮時間,可能會產生根據每秒要求之較高處理量的負載測試。 如果您停用考慮時間,也應該將使用者人數降到比啟用考慮時間時更少的數目。 例如,如果您停用考慮時間並嘗試執行 1000 個使用者,可能會使目標伺服器或負載測試代理程式不勝負荷。

如需詳細資訊,請參閱 在負載測試情節中編輯考慮時間以模擬網站人類互動延遲

設定 Web 效能測試要求的回應時間目標

Web 測試要求的屬性之一為回應時間目標。 如果您定義了 Web 效能測試要求的回應時間目標,當 Web 效能測試在負載測試中執行時,[負載測試分析器] 就會報告回應時間未達目標的 Web 效能測試百分比。 根據預設,Web 要求並未定義回應時間目標。

此外,如果您使用了 [回應時間目標] 驗證規則,未達回應時間目標的頁面就會在負載測試中產生錯誤。 如果您使用錯誤的記錄檔,就可以查看該位虛擬使用者在發生慢速網頁時所進行的動作。

如需詳細資訊,請參閱 HOW TO:在 Web 效能測試中設定頁面回應時間目標

在收集百分位數資料時包含計時詳細資料並啟用詳細資料檢視

回合設定包含了一個名為 [計時詳細資料儲存區] 的屬性。 如果啟用這個屬性,在負載測試期間執行每個個別測試、異動和頁面所需的時間會儲存在負載測試結果儲存機制中。 這樣就會在 [負載測試分析器] 中啟用虛擬使用者活動圖。 它也可以在 [負載測試分析器] 的 [測試]、[異動] 和 [頁面] 資料表中顯示第 90 個、第 95 個和第 99 個百分位數與標準差。

根據預設,[計時詳細資料儲存區] 屬性已啟用,以便在使用 [負載測試分析器] 之負載測試結果的 [詳細資料] 檢視中支援虛擬使用者活動圖。

您應該考慮針對大型測試停用 [計時詳細資料儲存區] 屬性。 這樣做有兩個重要原因。

  • 負載測試結果儲存機制用來儲存計時詳細資料所需的空間可能相當大,尤其是長時間的負載測試。

  • 在負載測試結束時,用來將此資料儲存至負載測試結果儲存機制的時間會很長,因為此資料在負載測試執行完成後是儲存在負載測試代理程式上的。

如果負載測試結果儲存機制的磁碟空間足夠,您就可以啟用 [計時詳細資料儲存區] 以取得百分位數資料。 啟用 [計時詳細資料儲存區] 有兩種選擇:[僅限統計資料] 和 [所有個別細節]。 不論選擇哪一種,所有的個別測試、頁面和異動都會計時,而且百分位數資料是從個別的計時資料計算出來的。 如果您選擇 [僅限統計資料],在百分位數資料計算出來之後,個別的計時資料會從儲存機制中刪除。 刪除該資料可以減少儲存機制所需的空間。 不過,如果您想要使用 SQL 工具來直接處理計時詳細資料,或在虛擬使用者活動圖中啟用虛擬使用者詳細資料,請選擇 [所有個別細節],以便將計時詳細資料儲存在儲存機制中。

如需詳細資訊,請參閱在負載測試分析器的詳細資料檢視中分析負載測試虛擬使用者活動HOW TO:設定負載測試來收集完整詳細資料,以便在測試結果中啟用虛擬使用者活動

設定新使用者的百分比屬性

負載測試中的每個情節都有個名為 [新使用者的百分比] 的屬性。 這個屬性會影響負載測試執行階段引擎模擬 Web 瀏覽器執行快取的方式。 [新使用者的百分比] 的預設值為 0。 這表示每位虛擬使用者都會在測試反覆項目之間保存相依要求的虛擬快取以及 Cookie 清單。 此快取的運作方式就如同瀏覽器快取,因此不會提出 URL 的後續要求,這點最接近實際 Web 瀏覽器的運作模型。

如果 [新使用者的百分比] 設定為 100%,每位使用者實際上都是「一次使用者」,永遠不會返回網站。 在此情況下,負載測試中所執行的每個 Web 效能測試反覆項目都會被視為第一次造訪網站的使用者,其瀏覽器快取中完全沒有之前造訪所留下的網站內容。 因此 Web 效能測試中的所有要求 (包括如影像之類的所有相依要求) 都會予以下載。

注意事項注意事項

有一個例外狀況是,Web 效能測試中同樣的可快取資源被要求多次。

您可以使用預設值 0 (新使用者的百分比),將大部分負載導入網站的應用程式層。 這樣做不僅更接近實際使用者的運作模型,而且也會將更多負載導入發生大部分效能問題的應用程式層。 如需詳細資訊,請參閱 HOW TO:指定使用 Web 快取資料之虛擬使用者的百分比

啟用 ASP.NET 分析工具

ASP.NET 分析工具診斷資料配接器是 Microsoft Visual Studio 2010 的新功能,可讓您在執行負載測試時,從應用程式層中收集 ASP.NET 分析工具資料。 若為長時間的負載測試 (例如,執行時間超過一小時的負載測試),您就不應該執行分析工具,因為分析工具檔案可能會變得很龐大 (數百 MB)。 而是,請使用 ASP.NET 分析工具來執行較短的負載測試,這樣做仍然會提供您深入診斷效能問題的優勢。

如需詳細資訊,請參閱 HOW TO:使用測試設定來設定 ASP.NET 分析工具以進行負載測試

啟用虛擬使用者記錄

這是 Microsoft Visual Studio 2010 的新功能,可讓您針對失敗的測試收集完整的記錄,或是指定記錄測試的頻率。 記錄是由 [測試失敗時儲存記錄檔]、[已完成之測試的儲存記錄檔頻率] 和 [測試記錄數目上限] 屬性所控制。 收集的記錄數目是由 [測試記錄數目上限] 和 [已完成之測試的儲存記錄檔頻率] 屬性設定所控制。 預設設定會防止系統收集大量記錄。 若為長時間執行的測試 (將產生數百萬個要求),請勿使用 [已完成之測試的儲存記錄檔頻率] 設定,否則記錄數目將會變得太龐大。 此外,請將 [測試記錄數目上限] 屬性設定 (實際控制每種錯誤類型的記錄數目上限) 保持在合理的數目。 您應該保持這些設定以防止收集數萬筆記錄,因為這會在測試結束時增加收集記錄的時間,而且將在負載測試資料庫中佔用儲存空間。

如需詳細資訊,請參閱修改負載測試記錄設定

啟用 SQL 追蹤

回合設定包含了一個名為 [SQL 追蹤已啟用] 的屬性。 這個屬性可讓您在負載測試期間啟用 Microsoft SQL Server 的追蹤功能。 如果執行負載測試是為了診斷 SQL 效能問題,這是啟動個別 SQL Profiler 工作階段的另一種選擇。 如果啟用該屬性,SQL 追蹤資料會顯示在 [負載測試分析器] 中。 您可以在 [SQL 追蹤] 資料表的 [資料表] 頁面中檢視。

若要啟用這個功能,執行負載測試的使用者必須要有執行 SQL 追蹤所需的 SQL 權限。 如果是在遠端電腦上使用測試代理程式和測試控制器來執行負載測試,控制器使用者必須要有 SQL 權限。 而且您還必須指定要寫入追蹤資料檔的目錄 (通常是網路共用)。 在負載測試完成時,追蹤資料檔會匯入至負載測試儲存機制中,並與負載測試產生關聯,以便稍後使用 [負載測試分析器] 進行檢視。

如需詳細資訊,請參閱設定負載測試回合設定HOW TO:使用負載測試編輯器整合 SQL 追蹤資料

維持適當數目的代理程式電腦

如果代理程式電腦的 CPU 使用率超過 75%,或只剩 10% 實體記憶體可用,就表示超載了。 請將更多代理程式加入至您的測試控制器,確保代理程式電腦不會成為負載測試的瓶頸。

如需詳細資訊,請參閱使用測試控制器和測試代理程式將負載測試分配給多部測試電腦HOW TO:指定要用於負載測試情節的測試代理程式

請參閱

工作

負載測試疑難排解

概念

使用錯誤資料表分析負載測試中的錯誤

使用負載測試分析器來分析負載測試中的臨界值規則違規

其他資源

建立和編輯負載測試

Consideration for Load Tests that Contain Web Performance Tests