(0) exportieren Drucken
Alle erweitern

Ausführen von Auslastungstests in gemischten Umgebungen

In diesem Thema wird das Ausführen von Visual Studio-Auslastungstests beschrieben, die in einer gemischten Umgebung ausgeführt werden. Eine "gemischte Umgebung" ist eine Umgebung, bei der die Komponenten des Auslastungstests in unterschiedlichen Kontexten gehostet werden, z. B. lokal oder als Windows Azure-Workerrollen. Eine gemischte Umgebung ist beispielsweise eine Umgebung, bei der die Test-Agents lokal ausgeführt werden und sich das Datenrepository auf einem Windows Azure SQL-Datenbank-Server befindet. Dies steht im Gegensatz zum System, das in Übersicht über Visual Studio-Auslastungstests in Windows Azure beschrieben wird. Bei diesem Thema werden alle Komponenten mit Ausnahme der Arbeitsstation als Windows Azure-Workerrollen ausgeführt.

Das Ausführen des Auslastungstests in diesen gemischten Umgebungen ist möglicherweise aus gesetzlichen oder anwendungsspezifischen Gründen erforderlich. In diesem Thema werden die zur Verfügung stehenden Optionen beschrieben und wie solche unterschiedlichen Szenarien eingerichtet werden.

Autoren: Jaimie Alva Bravo, Sidney Higa, Paolo Salvatori.

Herunterladen

Die erforderlichen Dateien für diese Prozeduren finden Sie hier: VSLoadTestInMixedEnvironments

Parallelität

Ein Faktor, der beim Abwägen unterschiedlicher Konfigurationen verwendet wird, ist die erhöhte Parallelität, wenn viele Prozesse in einem großen Rechenzentrum ausgeführt werden. Parallelität wird als eine Eigenschaft des Systems definiert, bei der mehrere Aufgaben gleichzeitig ausgeführt werden und möglicherweise interagieren. Ein Faktor, der die Parallelität einschränkt, ist die Anzahl der verfügbaren IP-Adressen. Je mehr IP-Adressen das System nutzt, desto höher ist die gleichzeitige Verarbeitung. In der Regel hängt die Anzahl der verfügbaren Adressen von der Größe des IP-Anbieters ab. Wenn die Vereinbarung zum Servicelevel (SLA) sehr umfangreich ist, steht in der Regel auch eine große Anzahl von IP-Adressen zur Verfügung. Solche Vereinbarungen sind jedoch nicht sehr häufig. Wenn Sie jedoch Windows Azure als Plattform verwenden, haben Sie den Vorteil, ein Microsoft-Rechenzentrum und seine Ressourcen verwenden zu können. Dies schließt eine große Gruppe von IP-Adressen ein. Gehosteten Diensten in Windows Azure werden virtuelle IP-Adressen zugewiesen. Im Rahmen dieser Erläuterung verwendet das nach außen gewandte (Internet-) Lastenausgleichsmodul (nicht die gehosteten Dienste) die IP-Adressen. Die Verfügbarkeit einer großen Anzahl ist ein Vorteil des Microsoft-Rechenzentrums. Beachten Sie jedoch auch, dass nicht alle Systeme dieses Maß an Parallelität erfordern.

Diese höhere Kapazität in Bezug auf die Parallelität ist ein weiterer großer Vorteil beim Ausführen von Auslastungstests in Windows Azure. Dieses Maß an Parallelität lässt sich außerdem außerhalb eines großen Rechenzentrums nur äußerst schwierig reproduzieren.

Faktoren

Es gibt sechs Faktoren, die sich auf die Parallelität auswirken. Die ersten zwei Faktoren sind die Kontexte, in denen Sie den Auslastungstest ausführen: Cloud und lokal.

  • Lokal

  • Cloud

Die anderen vier Faktoren sind die Komponenten des Auslastungstests. Sie lauten folgendermaßen:

  • Testcontroller

  • Test-Agents

  • Ergebnisrepository

  • Getestetes System

Die vier Komponenten werden hier angezeigt:

Faktoren für Auslastungstest

In der Abbildung stellt die relative Breite der Linien die übertragene Datenmenge dar; je breiter die Linie ist, desto größer ist die Datenmenge. Die umfangreichste Datenübertragung erfolgt zwischen dem Testcontroller und dem Ergebnisrepository. Die einfachste Last tritt zwischen dem getesteten System und dem Controller auf. (Die tatsächliche Last hängt jedoch davon ab, wie viel Protokollierungsaufwand das getestete System erzeugt.) Weitere Informationen finden Sie in der Abbildung in der Übersicht über Visual Studio-Auslastungstests in Windows Azure.

noteHinweis
Der Eindeutigkeit halber wird in der Abbildung davon ausgegangen, dass die Arbeitsstation, die Visual Studio hostet, auch den Testcontroller hostet. Diese Konfiguration erleichtert die Kommunikation zwischen Visual Studio und dem Testcontroller. Während eines Auslastungstests sendet der Controller eine große Datenstrommenge zur Leistungsüberwachung in Echtzeit an Visual Studio zurück.

Topologien

Wenn die vier Komponenten und die beiden Kontexte vorhanden sind, stehen verschiedene topologische Optionen zur Verfügung. Die vier Komponenten des Auslastungstests können in einem oder dem anderen Kontext vorhanden sein. Die beiden einfachsten Topologien werden hier als Beispiel angegeben.

  1. Alle Komponenten in der Cloud.

  2. Alle Komponenten lokal.

Der Eindeutigkeit halber werden die beiden einfachsten Optionen in dieser Tabelle dargestellt.

 

Controller Agents Repository Getestetes System Hinweise

Lokal

Lokal

Lokal

Lokal

Begrenzte Parallelität verhindert Netzwerkdatenverkehr außerhalb der Räumlichkeiten.

Cloud

Cloud

Cloud

Cloud

Umfangreiche Parallelität (mehrere IP-Adressen) und kein Netzwerkdatenverkehr außerhalb der Cloud.

Die Topologien sind nun komplizierter. Der Einfachheit halber ist in dieser Tabelle eine Hauptdivision dargestellt. In dieser Tabelle wird der Controller lokal ausgeführt.

Der Datenverkehr von den Agents zum getesteten System wird nicht berücksichtigt, da davon ausgegangen wird, dass dieser stets Bestandteil der Testkosten ist. Beachten Sie auch, dass der Netzwerkdatenverkehr in den folgenden Tabellen auch Kosten verursacht. Es werden auch die Daten in Rechnung gestellt, die außerhalb des Rechenzentrums übertragen werden. Interner Datenverkehr wird nicht in Rechnung gestellt. Detaillierte Preisinformationen finden Sie unter Preise. Suchen Sie nach "in GB gemessene Datenübertragungen".

In der nächsten Tabelle wird ein wichtiger Aspekt dargestellt – die lokale Ausführung des Testcontrollers. In diesem Fall muss der Datenverkehr zwischen den Komponenten die Begrenzung überschreiten, woraus verschiedene Konsequenzen resultieren, abhängig von der Komponente und deren "Chattiness".

Controller wird lokal ausgeführt

Controller Agents Repository Getestetes System Hinweise

Lokal

Lokal

Lokal

Cloud

Begrenzte Parallelität, Netzwerkdatenverkehr vom getesteten System zum Controller.

Lokal

Lokal

Cloud

Lokal

Begrenzte Parallelität, Netzwerkdatenverkehr vom Controller zum Repository.

Lokal

Lokal

Cloud

Cloud

Begrenzte Parallelität, Netzwerkdatenverkehr vom getesteten System zum Controller und zurück zum Repository.

Lokal

Cloud

Lokal

Lokal

Umfangreichere Parallelität, Netzwerkdatenverkehr von den Agents zum Controller.

Lokal

Cloud

Lokal

Cloud

Umfangreichere Parallelität, Netzwerkdatenverkehr von den Agents und dem getesteten System zum Controller.

Lokal

Cloud

Cloud

Lokal

Umfangreichere Parallelität, Netzwerkdatenverkehr von den Agents zum Controller und zurück zum Repository.

Lokal

Cloud

Cloud

Cloud

Umfangreichere Parallelität, Netzwerkdatenverkehr vom Agent und getesteten System zum Controller und zurück zum Repository.

In dieser Tabelle wird die zweite Hauptdivision angezeigt. In dieser Tabelle wird der Controller in der Cloud ausgeführt.

Controller wird in der Cloud ausgeführt

Controller Agents Repository Getestetes System Hinweise

Cloud

Lokal

Lokal

Lokal

Begrenzte Parallelität, Netzwerkdatenverkehr vom Agent und getesteten System zum Controller und zurück zum Repository.

Cloud

Lokal

Lokal

Cloud

Begrenzte Parallelität, Netzwerkdatenverkehr vom Agent zum Controller und zurück zum Repository.

Cloud

Lokal

Cloud

Lokal

Begrenzte Parallelität, Netzwerkdatenverkehr vom Agent und getesteten System zum Controller.

Cloud

Cloud

Cloud

Cloud

Umfangreichere Parallelität, Netzwerkdatenverkehr von den Agents zum Controller.

Cloud

Cloud

Lokal

Lokal

Umfangreichere Parallelität, Netzwerkdatenverkehr vom getesteten System zum Controller und zurück zum Repository.

Cloud

Cloud

Lokal

Cloud

Umfangreichere Parallelität, Netzwerkdatenverkehr vom Controller zum Repository.

Cloud

Cloud

Cloud

Lokal

Umfangreichere Parallelität, Netzwerkdatenverkehr vom getesteten System zum Controller.

Cloud

Multi-Cloud

Cloud

Cloud

Umfangreichste Parallelität, mindestens vom getesteten System in DC1 zum Controller in DC2 (möglicherweise mehr, abhängig vom Setup).

Empfehlungen

Die Topologien werden der Vollständigkeit halber dargestellt. Die Auswahl der Topologie ist möglicherweise nicht Ihnen überlassen. Wenn Sie z. B. mehr als 100 GB SQL Server-Datenspeicher benötigen, müssen Sie diesen lokal speichern; momentan liegt die Beschränkung bei SQL-Datenbank bei 100 GB. Wenn Sie jedoch etwas Spielraum haben, finden Sie hier die besten Topologien. Diese Empfehlungen sind am effizientesten und stellen die höchsten Parallelitätsstufen in den zwei Hauptdivisionen (Controller lokal oder Controller in der Cloud) dar.

Am besten geeignet, wenn der Controller lokal ausgeführt wird

Controller Agents Repository Getestetes System Hinweise

Lokal

Cloud

Lokal

Lokal

Umfangreichere Parallelität, Netzwerkdatenverkehr von den Agents zum Controller.

Lokal

Cloud

Lokal

Cloud

Umfangreichere Parallelität, Netzwerkdatenverkehr von den Agents und dem getesteten System zum Controller.

Am besten geeignet, wenn der Controller in der Cloud ausgeführt wird

Controller Agents Repository Getestetes System Hinweise

Cloud

Lokal

Cloud

Lokal

Begrenzte Parallelität, Netzwerkdatenverkehr vom Agent und getesteten System zum Controller.

Cloud

Cloud

Cloud

Cloud

Umfangreichere Parallelität, Netzwerkdatenverkehr von den Agents zum Controller.

Cloud

Multi-Cloud

Cloud

Cloud

Umfangreichste Parallelität, mindestens vom getesteten System in DC1 zum Controller in DC2 (möglicherweise mehr, abhängig vom Setup).

Höhere Anforderungen an die Komplexität

In der Realität kann das tatsächliche Layout der Komponenten komplex sein. Ein getestetes System kann zahlreiche Unterkomponenten aufweisen, wobei jede Komponente als Workerrolle oder Webrolle ausgeführt wird oder lokale Dienste nutzt. Eine Komponente initialisiert z. B. das System oder stellt Überprüfungsdienste bereit. Es ist wahrscheinlich, dass viele der Komponenten mit anderen Teilen des Systems kommunizieren müssen. Dieser Satz von Komponenten ist zusätzlich zum Auslastungstestsystem (bestehend aus Controller, Agents und Repository) verfügbar. Die folgende Abbildung zeigt ein System, das über zahlreiche Teile verfügt. Sie soll lediglich verdeutlichen, dass eine reale Lösung aus zahlreichen Teilen bestehen kann und viele Kommunikationsanforderungen vorhanden sein können. Die Details des Systems stehen nicht im Mittelpunkt.

Beispiel einer komplexen Konfiguration

Trotz dieser Komplexität ist es immer noch möglich, verschiedene Komponenten nach Bedarf in Windows Azure oder lokal zu positionieren. Im nächsten Abschnitt werden die erforderlichen Schritte beschrieben.

Setup

Das Setup stellt eine Reihe von Alternativen zum grundlegenden Setup in diesem Dokument dar: Bereitstellen von Windows Azure für einen Auslastungstest. In den dort beschriebenen Prozeduren wird angegeben, wie das Verwaltungsportal mit den entsprechenden Elementen eingerichtet wird. Beispielsweise wird erklärt, wie ein Speicherkonto und eine Windows Azure Connect-Gruppe eingerichtet wird.

Der erste Alternative ermöglicht es Ihnen, SQL-Datenbank als Ergebnisrepository zu verwenden. In der zweiten Alternative wird beschrieben, wie Endpunkte auf jeder Workerrolle eingerichtet werden. Endpunkte ermöglichen die Kommunikation zwischen den Agents, dem getesteten System, dem Testcontroller und (falls erforderlich) einem zusätzlichen Faktor – die Arbeitsstation, die Visual Studio hostet. Im bereinigten Modus wird der Computer lokal ausgeführt. Wenn die Anwendung während der Testausführung zum Einsatz kommen muss, kann sie auch als Windows Azure-Workerrolle gehostet werden.

Voraussetzungen

Folgendes ist erforderlich:

  • Laden Sie die Datei "LoadTest2010.bacpac" herunter.

  • Optional. Installieren Sie Visual Studio 2010 Ultimate auf einer Workerrolle.

    Wenn Sie beabsichtigen, den Testcontroller auf einer Workerrolle auszuführen, installieren Sie Visual Studio 2010 Ultimate auf der Workerrolle. Fügen Sie dem Windows Azure-Projekt in Visual Studio eine Workerrolle hinzu. Stellen Sie sicher, dass Remotedesktop aktiviert ist. Fügen Sie die Workerrolle einer Connect-Gruppe hinzu, um sie mit der lokalen Site zu verbinden. Stellen Sie mithilfe von Remotedesktop eine Verbindung mit der Workerrolle her, und installieren Sie anschließend Visual Studio 2010 Ultimate.

Bereitstellen einer Windows Azure SQL-Datenbank mithilfe von SQL BACPAC

Verwenden Sie diese Methode, um Ergebnisse auf einem SQL-Datenbank zu speichern, sodass die Auslastungstestdaten gespeichert werden. Laden Sie die Datei mit dem Namen LoadTest2010.bacpac in das Azure-Speicherkonto hoch. Die folgenden Voraussetzungen müssen ebenfalls erfüllt sein:

  1. Ein SQL-Datenbank-Konto.

  2. Eine in einem Abonnement erstellte SQL Server-Instanz. Weitere Informationen finden Sie unter Vorgehensweise: Erstellen eines Windows Azure SQL-Datenbankservers.

  3. Ein Anmeldename und ein Kennwort mit der Berechtigung, die Serverinstanz zu ändern.

So stellen Sie eine SQL-Datenbank mit BACPAC bereit

  1. Laden Sie die Datei "LoadTest2010.bacpac" in das Azure-Speicherkonto hoch.

    Verwenden Sie den "StorageServicesSmartClient", um die Datei in einen öffentlichen Container hochzuladen. Sobald die DACPAC-Datei hochgeladen ist, können Sie die Datenbank mithilfe der Import-Funktion des Verwaltungsportals erstellen.

  2. Klicken Sie im Verwaltungsportal auf Datenbank.

  3. Erweitern Sie das Abonnement, das den verwendeten SQL-Datenbank-Server enthält, und wählen Sie den Server aus.

  4. Klicken Sie im Abschnitt Datenbank des Menübands auf Importieren.

  5. Befolgen Sie die Anweisungen, um die Datei "LoadTest2010.bacpac" zu importieren: Vorgehensweise: Importieren einer Datenebenenanwendung (Windows Azure SQL-Datenbank).

Sobald das Repository in SQL-Datenbank erstellt wurde, konfigurieren Sie den Testcontroller. Legen Sie die Verbindungszeichenfolge für den Ergebnisspeicher fest. Das Dialogfeld zum Festlegen des Werts ist nur in Visual Studio Ultimate verfügbar. Bevor Sie den Vorgang fortsetzen, müssen Sie eine Auswahl treffen. Entscheiden Sie sich für eine der folgenden Optionen zum Ausführen des Testcontrollers:

  1. Auf einem lokalen Computer.

    Wenn Sie diese Option auswählen, befolgen Sie die nachstehenden Anweisungen.

  2. Über eine Workerrolle in Windows Azure, die eine Instanz von Visual Studio ausführt.

    Wenn Sie sich dafür entschieden haben, den Testcontroller über eine Workerrolle in Windows Azure auszuführen:

    1. Erstellen Sie die Windows Azure Connect-Gruppe.

    2. Fügen Sie der Gruppe die lokale Arbeitsstation hinzu.

    3. Nachdem der gehostete Dienst bereitgestellt wurde, verwenden Sie Remotedesktop, um eine Verbindung mit der Workerrolle herzustellen, die Visual Studio hostet.

    4. Installieren Sie Visual Studio 2010 Ultimate mithilfe einer Setupdatei (.msi) im Netzwerk.

So konfigurieren Sie die lokale Instanz des Testcontrollers

  1. Führen Sie Visual Studio als Administrator aus.

  2. Klicken Sie in Visual Studio im Menü Test auf Testcontroller verwalten.

  3. Klicken Sie unter dem Text Speicher für Auslastungstestergebnisse auf die Schaltfläche mit den Auslassungszeichen.

  4. Fügen Sie den Namen des SQL-Datenbank-Servers in das Dialogfeld Verbindungseigenschaften ein.

  5. Wählen Sie unter dem Text Am Server anmelden die Option SQL Server-Authentifizierung verwenden aus.

  6. Legen Sie den Wert Benutzername auf den Anmeldenamen für den SQL-Datenbank-Administrator fest.

  7. Legen Sie den Wert für das Feld Kennwort auf den Kennwortwert für den SQL-Datenbank-Administrator fest.

  8. Wählen Sie im Abschnitt Mit Datenbank verbinden die Datenbank LoadTest2010 aus.

    Wenn die Verbindungszeichenfolge und die Anmeldeinformationen richtig sind, betrachten Sie das Dialogfeld Testcontroller konfigurieren. Das Dialogfeld wird mit richtigen Werten aufgefüllt.

Verwenden von Endpunkten statt einer Azure Connect-Gruppe

Es gibt eine Alternative zum Verwenden der Connect-Gruppe: das Konfigurieren von Endpunkten auf jeder Workerrolle, um die Kommunikation zwischen den Instanzen zu ermöglichen. Der Vorteil besteht darin, dass die Verbindung zuverlässiger ist. Probieren Sie diese Alternative mithilfe der folgenden Schritte aus.

So konfigurieren Sie Endpunkte auf Workerrolleninstanzen

  1. Öffnen Sie in Visual Studio das Auslastungstestprojekt.

  2. Konfigurieren Sie jede Workerrolle mit internen TCP-Endpunkten. Allgemeine Anweisungen zum Hinzufügen von Endpunkten zu einer Rolle finden Sie unter Vorgehensweise: Definieren von internen Endpunkten für einen Rolle. Geben Sie für jeden Endpunkt eine andere private Portnummer an. In der folgenden Tabelle sind die Endpunktkonfigurationen für jede Rolle dargestellt. Beachten Sie, dass alle diese Endpunkte private Ports sind, die das TCP-Protokoll nutzen:

     

    Rollenname Portname Portnummer

    Agent

    SQL

    1433

    Agent

    WFS

    137-445

    Agent

    Agent-Überwachungsport

    6910

    Agent

    AgentDownload

    80

    Controller

    SQL

    1433

    Controller

    WFS

    137-445

    Controller

    Controller

    6910

    Controller

    AgentDownload

    80

    Controller

    Controller-Überwachungsport

    6901

    Controller

    Agent

    6910

    Controller/Arbeitsstation

    Talkback

    49152

  3. Konfigurieren Sie einen bestimmten Port, damit der Controller Nachrichten an die Agents senden kann. Verwenden Sie den folgenden Registrierungsschlüssel auf der Workerrolle, die den Controller hostet:

    1. HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\VisualStudio\10.0\EnterpriseTools\QualityTools\ListenPortRange\PortRangeStart

    2. HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\VisualStudio\10.0\EnterpriseTools\QualityTools\ListenPortRange\PortRangeEnd

  4. Führen Sie beim Start der Workerrolle die Datei "setupwfw.cmd" aus.

  5. Verwenden Sie Remotedesktop für jede Rolle, und gehen Sie wie folgt vor:

    1. Rufen Sie das folgende Verzeichnis auf: \Windows\System32\drivers\etc\

      Öffnen Sie die Hostdatei, um diese zu bearbeiten. Die Datei kann mit Notepad.exe geöffnet werden. Legen Sie die Hostdatei in jedem System ab, das über den Hostnamen und die IP-Adresse verfügt. Das Bearbeiten der Datei ist ein manueller Prozess. Um die IP-Adresse einer Rolle zu ermitteln, öffnen Sie für jede Rolle ein Befehlsfenster, und geben Sie IPCONFIG ein. Ein Beispiel für die Hostdatei:

    2. 
      # Copyright (c) 1993-2009 Microsoft Corp.
      #
      # This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
      #
      # This file contains the mappings of IP addresses to host names. Each
      # entry should be kept on an individual line. The IP address should
      # be placed in the first column followed by the corresponding host name.
      # The IP address and the host name should be separated by at least one
      # space.
      #
      # Additionally, comments (such as these) may be inserted on individual
      # lines or following the machine name denoted by a '#' symbol.
      #
      # For example:
      #
      #      102.54.94.97     rhino.acme.com          # source server
      #       38.25.63.10     x.acme.com              # x client host
      
      # localhost name resolution is handled within DNS itself.
      #127.0.0.1       localhost
      #::1             localhost
      10.115.222.131 RD00155D317984    # workstation
      10.115.218.125 RD00155D3175BF    # Controller
      10.115.222.142 RD001455316FEE    # Agent00
      10.115.196.26 RD00D32D6747       # Agent01
      10.115.228.52  RD000155D317EBD  # Agent02
      10.115.222.131 RD00155D317984    # Agent03
      
      
  6. Jede Rolle kann kommunizieren, und Sie können die Binärdateien auf jedem System installieren. Um den Prozess zu beschleunigen, fügen Sie die Binärdateien in den BLOB-Speicher ein. Führen Sie auch zusätzliche Befehle aus, die Bestandteil der Startaufgabe sind. Weitere Informationen finden Sie unter Vorgehensweise: Definieren von Startaufgaben für eine Rolle.)

  7. Erstellen Sie in SQL Server ein lokales SQL-Konto, damit der Controller und die Arbeitsstation auf die Ergebnisdatenbank zugreifen können. Konfigurieren Sie anschließend das Repository, sodass diese Konten verwendet werden. Erstellen Sie die Datenbank, wenn Sie den Controller einrichten, und konfigurieren Sie sie anschließend, sodass das Konto von der IDE verwendet wird.


Builddatum:

2013-07-25

Community-Beiträge

Anzeigen:
© 2014 Microsoft