Windows Azure 上負載測試中的效能計數器

在執行負載測試時,Visual Studio 可讓您從效能計數器收集資料 (通常是使用 Perfmon.exe 檢視)。效能計數器是裝載測試系統的每一部電腦所特有 (工作者角色或 Web 角色)。您可以使用 Perfmon 來指定要監控的處理序,包括應用程式處理序。本主題會逐步解說在 Windows Azure 上執行 Visual Studio 負載測試時,記錄這些計數器的步驟。

note附註
如本文所示,當您記錄效能計數器時,網路邊界會減少可以接收的訊息輸送量。例如,在內部部署案例中,以每秒一個的頻率記錄多個計數器是可行的。在這裡所述的案例中,網路延遲會阻礙同等效能。因此在實際操作中,請降低您收集的計數器數目。此外,請將收集頻率設定為 5 秒或更高的值。如需有關建立計數器集合的詳細資訊,請參閱建立效能計數器集合

本主題是<在 Windows Azure 角色中使用 Visual Studio 負載測試>中所述的基本案例變化。該組文件會描述如何在 Windows Azure 上執行 Visual Studio 負載測試。在該基本案例中,負載測試專案會針對 Windows Azure 應用程式產生流量,而且所有角色都位於相同的 Windows Azure Connect 群組。在本主題中,工作者角色和測試回合中的系統位於相同的 Connect 群組,但是會在不同的託管服務中執行。

作者:Sidney Higa 和 Paolo Salvatori。

致謝:Jaime Alva Bravo。

必要條件

啟用效能計數器的擷取需要以下項目。

  1. Windows Azure Connect 端點安裝可執行檔 Wacendpointpackage.exe

    請參閱如何使用 Windows Azure Connect 安裝本機端點。下載可執行檔供日後使用。

  2. Windows Azure 端點啟用 Token。

    遵循<如何使用 Windows Azure Connect 安裝本機端點>中的指示來取得 Token。儲存此 Token 以供日後擷取。

概觀

Visual Studio 負載測試是由兩個邏輯部分組成:

  1. 負載測試元件。這些元件包括測試控制器和代理程式。

  2. 待測系統。受到負載測試的應用程式。

待測系統和負載測試元件可以在一個 Windows Azure 託管系統中一起部署。在這個案例中,當代理程式節點可以與執行應用程式的角色執行個體直接通訊時,組件之間的通訊會是最佳的狀況。這些組件可以使用 Visual Studio 工具部署在不同的託管系統中,但是無法收集效能計數器 (本文稍後會有說明)。

在此情況下,待測系統和負載測試元件會在不同的託管服務中執行,但是必須收集效能計數器。有兩個託管服務,一個用於測試控制器和代理程式,另一個用於待測系統。但是,依然只有單一 Windows Azure Connect 群組用來啟用通訊。

不同服務中測試下的代理程式與系統

建立 Connect 群組的預設方法是透過 [啟用 Windows Azure Connect] 核取方塊使用 Visual Studio (如需詳細資訊,請參閱使用 Windows Azure Connect 建立虛擬網路)。在此情況下,代理程式和待測系統會在不同的服務中執行。因此,角色彼此之間無法使用預設方法通訊,也就是說,使用上述的核取方塊無效。根據設計,Windows Azure Connect 不允許在不同託管服務執行的角色執行個體之間進行通訊。因應措施是將 Connect 端點安裝在以下位置:

  1. 裝載代理程式的工作者角色。

  2. 裝載待測系統的 Web 角色和/或工作者角色。

因為您不使用此核取方塊,所以必須透過另一個處理序自動安裝此端點,如這裡所述。

自動安裝 Connect 端點

若要啟用託管服務之間的通訊,請先下載 Wacendpointpackage.exe。將可執行檔與 Visual Studio 專案儲存在一起,這個專案包含了裝載代理程式的工作者角色。然後設定此工作者角色自動安裝端點,如下所示。

若要自動安裝 Connect 端點

  1. Wacendpointpackage.exe 複製並貼到 Visual Studio 專案中 (這是裝載代理程式的工作者角色的專案)。遵循以下步驟來設定角色,自動安裝端點。

    1. 以管理員身分執行 Visual Studio,並開啟包含負載測試專案的方案。

    2. 在 [方案總管] 中,將 Wacendpointpackage.exe 貼到 Visual Studio 專案中,此專案包含裝載代理程式的工作者角色。

    3. 在 [方案總管] 中,以滑鼠右鍵按一下 Wacendpointpackage.exe,然後按一下 [屬性]

    4. 在 [屬性] 窗格中,將 [建置動作] 屬性設定為 [無]

    5. 在 [屬性] 窗格中,確定 [複製到輸出目錄] 屬性設定為 [永遠複製]

  2. 建立批次檔來執行安裝可執行檔。

    1. 建立名為 Startup.cmd 的檔案。

    2. 將下列程式碼複製並貼到此檔案中。以您的 Connect 群組的啟用 Token 來取代 [<Windows Azure Connect 群組啟用 Token>]

      Wacendpointpackage.exe /i  /s /m en-us /token <windows azure connect group activation token>
      
  3. 將 Startup.cmd 檔案複製並貼到 Visual Studio 專案中 (這是裝載代理程式的工作者角色的專案)。將檔案的 [建置動作] 屬性設定為 [無]。同時將檔案的 [複製到輸出目錄] 屬性設定為 [永遠複製]

  4. 設定工作者角色或 Web 角色執行批次檔。

    1. 開啟包含服務定義與組態檔的 Azure 雲端專案。

    2. 開啟 ServiceDefinition.csdef 檔案。

    3. 在裝載代理程式的 <WebRole> 元素下方加入 <Runtime> 元素,並將執行內容設定為 "elevated"。在 <Runtime> 元素下方,加入 <Startup> 元素。然後在更高階的權限模式下,加入 <Task> 元素來執行批次檔。完整的程式碼如下所示:

      <Runtime executionContext="elevated"/>
      <Startup>
          <Task commandLine="setup\startup.cmd" executionContext="elevated" taskType="simple" />
      </Startup>    
      
      

這裡所述的技術通常用來在 Azure 工作者角色和 Web 角色上安裝軟體。如需詳細資訊,請參閱在 Windows Azure 角色執行個體啟動之前啟動工作

初始化

在繼續進行下一節之前,請先在 Windows Azure 上部署及執行虛擬電腦。建立計數器集合以及啟用計數器集合的對應都需要執行中的執行個體。如需有關在 Azure 上部署和執行託管服務的詳細資訊,請參閱在 Windows Azure 中預備應用程式

建立效能計數器集合

若要建立效能計數器集合,請使用 Visual Studio 負載測試工具。

若要建立效能計數器集合

  1. 開啟包含負載測試元件的 Visual Studio 專案。

  2. 開啟測試專案,然後開啟負載測試 (*.loadtest) 檔案。

  3. 以滑鼠右鍵按一下 [計數器集合] 資料夾,然後按一下 [加入自訂計數器集合]。預設名稱為 Custom1。視需要重新命名此計數器集合資料夾。

  4. 以滑鼠右鍵按一下新的自訂計數器資料夾,然後按一下 [加入計數器]

  5. [選取效能計數器] 對話方塊中,從 [電腦] 下拉式清單中選取包含待測系統的電腦。此電腦可以是在 Windows Azure 上執行的角色執行個體。

  6. [效能] 類別目錄下拉式清單中,選取要監控的效能計數器,然後按一下 [確定]

  7. 重複上述步驟,加入您所需的計數器。

在建立計數器集合之後,請為執行的每一個角色建立對應。

若要建立效能計數器對應

  1. 在負載測試檔案 (*.loadtest) 中,開啟 [回合設定] 資料夾。

  2. [計數器集合對應] 資料夾底下,尋找執行中 Azure 執行個體的名稱。虛擬機器的名稱通常會以 "RD" 開頭。代理程式工作者角色的每個執行個體都有一部虛擬機器。

  3. 以滑鼠右鍵按一下機器節點,然後按一下 [管理計數器集合]

  4. [管理計數器集合] 對話方塊中,選取自訂計數器,將它加入。

自訂計數器集合現在會對應到執行代理程式的每個工作者角色。

啟用通過安全性

遠端桌面是存取角色執行個體的標準方式。您可以設定角色來搭配 Visual Studio 工具使用遠端桌面。Visual Studio 工具會使用您指定的使用者名稱和密碼建立憑證。如需詳細資訊,請參閱透過 Windows Azure 角色使用遠端桌面。當您使用此方法時,使用者名稱會自動加入到有設定使用遠端桌面之所有角色上的系統管理員群組。相同的使用者必須隸屬於工作者角色電腦上的系統管理員群組。這表示,相同的使用者名稱和密碼會用來登入代理程式及待測系統。完成這項處理的方式是建立本機使用者,並使用該識別來部署負載測試託管服務。若要檢查組態是否正確,請使用遠端桌面來檢查執行中工作者角色上的系統管理員群組。查看該相同使用者是否確實為群組的一部分。如需有關為負載測試建立本機使用者的詳細資訊,請參閱<將負載測試發行到 Windows Azure>主題中的<建立管理負載測試控制器的本機使用者>。


建置日期:

2013-07-25

社群新增項目

顯示: