Freigeben über


Übersicht über Testszenarios

Dieses Thema bietet eine Übersicht über die Testanwendung. eine Beschreibung der verwendeten Testmethodik und listet die während des Auslastungstests erfassten Key Performance Indicators (KPIs) auf.

Testen der Anwendung

Eine synchrone Anforderungs-Antwort-Anwendung wurde verwendet, um die Leistung von BizTalk Server, die auf Hyper-V ausgeführt werden, mit BizTalk Server zu vergleichen, die auf physischer Hardware ausgeführt werden. Diese Anwendung wurde verwendet, um die Leistung einer BizTalk Server Lösung zu veranschaulichen, die auf geringe Latenz optimiert wurde. Messaging mit geringer Latenz ist für bestimmte Szenarien wichtig, z. B. für Online-Banking, bei denen ein Kunde eine Anforderung sendet und innerhalb eines sehr kurzen Intervalls (z. B < . 3 Sekunden) eine Antwortnachricht erwartet.

Die folgende Abbildung veranschaulicht die verwendete allgemeine Architektur. Visual Studio Team System (VSTS) 2008 Test Load Agent hat eine benutzerdefinierte Testklasse aufgerufen, die den WCF-Transport verwendet, um Auslastung für BizTalk Server zu generieren. Die BizTalk Server-Anwendung in diesem Szenario wurde über einen WCF-BasicHttp Anforderung-Antwort-Empfangsspeicherort verfügbar gemacht. VSTS 2008 Test Load Agent wurde aufgrund der großen Flexibilität, die er bietet, als Testclient verwendet, einschließlich der Möglichkeit, die Anzahl der gesendeten Nachrichten insgesamt, die Anzahl gleichzeitiger Threads und das Standbyintervall zwischen gesendeten Anforderungen zu konfigurieren.

Mehrere VSTS 2008 Test Load Agent-Computer können gleichzeitig ausgeführt werden, um reale Auslastungsmuster zu simulieren. Für diese Tests wurden die VSTS 2008 Test Load Agent-Computer von einem einzelnen VSTS 2008 Test Load Agent Controller-Computer gesteuert, auf dem auch BizUnit 3.0 ausgeführt wurde. Daher wurde eine konsistente Last sowohl an die physischen als auch an die virtuellen BizTalk Server Computer gesendet. Weitere Informationen zur Verwendung von VSTS 2008 Test Edition zum Generieren simulierter Auslastung für Tests finden Sie unter https://go.microsoft.com/fwlink/?LinkID=132311.

Testen der Anwendungsarchitektur

  1. Ein WCF-BasicHttp oder WCF-Custom Request-Response Empfangsspeicherort empfängt eine neue CalculatorRequest von einem Test Load Agent-Computer.

  2. Die XML-Disassemblerkomponente erhöht das Method-Element im CalculatorRequest-XML-Dokument. Der Nachrichten-Agent übermittelt die eingehende Nachricht an die MessageBox-Datenbank (BizTalkMsgBoxDb).

  3. Die eingehende Anforderung startet eine neue instance der LogicalPortsOrchestration. Diese Orchestrierung verwendet einen direkt gebundenen Port, um die CalculatorRequest-Nachrichten mit der höhergestuften Method-Eigenschaft = "LogicalPortsOrchestration" zu empfangen.

  4. Die LogicalPortsOrchestration verwendet eine Schleife zum Abrufen von Vorgängen, und für jedes Element ruft sie den nachgeschalteten RECHNER-WCF-Webdienst mithilfe eines logischen Solicit-Response Ports auf. Die Anforderungsnachricht für den WCF-Webdienst des Rechners wird mithilfe einer Hilfskomponente erstellt und im MessageBox-Objekt veröffentlicht.

  5. Die Anforderungsnachricht wird von einem WCF-BasicHttp Sendeport verwendet.

  6. Der WCF-BasicHttp Sendeports ruft eine der Methoden (Hinzufügen, Subtrahieren, Multiplizieren, Dividieren) auf, die vom WCF-Webdienst Rechner verfügbar gemacht werden.

  7. Der WCF-Webdienst Rechner gibt eine Antwortnachricht zurück.

  8. Die Antwortnachricht wird im MessageBox-Objekt veröffentlicht.

  9. Die Antwortnachricht wird an den Aufrufer LogicalPortsOrchestration zurückgegeben. Die Orchestrierung wiederholt dieses Muster für jeden Vorgang innerhalb des eingehenden CalculatorRequest-XML-Dokuments.

  10. Die LogicalPortsOrchestration veröffentlicht die CalculatorResponse-Nachricht im MessageBox-Objekt.

  11. Die Antwortnachricht wird vom Request-Response WCF-BasicHttp Empfangsspeicherort abgerufen.

  12. Die Antwortmeldung wird an den Auslastungstest-Agent-Computer zurückgegeben.

    Ein Screenshot der Orchestrierung, die während des Auslastungstests verwendet wurde, ist unten dargestellt:

Hinweis

Zur Veranschaulichung ist die unten dargestellte Orchestrierung eine vereinfachte Version der Orchestrierung, die tatsächlich während des Auslastungstests verwendet wurde. Die während des Auslastungstests verwendete Orchestrierung umfasste mehrere Bereiche, Fehlerbehandlungslogik und zusätzliche Porttypen.

Testen der Anwendungsorchestrierung Testen der Anwendungsorchestrierung

Testmethodik

Leistungstests umfassen viele Aufgaben, die bei manueller Ausführung wiederholt, monoton und fehleranfällig sind. Um die Testeffizienz zu verbessern und die Konsistenz zwischen Testläufen zu gewährleisten, wurde Visual Studio 2013 Team System (VSTS) Test Edition mit BizUnit 3.0 verwendet, um die während des Testprozesses erforderlichen Aufgaben zu automatisieren. VSTS 2008 Test Load Agent-Computer wurden als Testclient verwendet, um die Nachrichtenlast für das System zu generieren, und bei jedem Testlauf wurden dieselben Nachrichtentypen verwendet, um die Konsistenz zu verbessern. Im Anschluss an diesen Prozess wird ein konsistenter Satz von Daten für jeden Testlauf bereitgestellt. Weitere Informationen zu BizUnit 3.0 finden Sie unter https://go.microsoft.com/fwlink/?LinkID=85168. Weitere Informationen zu Visual Studio 2013 Team System Test Edition finden Sie unter https://go.microsoft.com/fwlink/?LinkID=141387.

Die folgenden Schritte wurden automatisiert:

  • Beenden Sie BizTalk-Hosts.

  • Bereinigen von Testverzeichnissen.

  • Starten Sie die IIS neu.

  • Bereinigen Sie die BizTalk Server Messagebox-Datenbank.

  • Starten Sie SQL Server neu.

  • Löschen sie Ereignisprotokolle.

  • Erstellen Sie einen Testergebnisordner für jede Ausführung, um die zugehörigen Leistungsmetriken und Protokolldateien zu speichern.

  • Starten Sie BizTalk-Hosts.

  • Laden sie Leistungsmonitor Indikatoren.

  • Erwärmen Sie die BizTalk-Umgebung mit einer geringen Last.

  • Senden über repräsentative Ausführung.

  • Schreiben sie Leistungsprotokolle in einen Ergebnisordner.

  • Sammeln Sie Anwendungsprotokolle, und schreiben Sie in eine .csv-Datei im Ergebnisordner.

  • Führen Sie das PAL-Tool (Performance Analysis of Logs), die Tools Relog und Log Parser für die gesammelten Leistungsprotokolle aus, um Statistiken, Diagramme und Berichte zu erstellen. Weitere Informationen zu PAL, Relog und Log Parser finden Sie im Anhang D: Tools zum Messen der Leistung.

Hinweis

Die gesamte Nachverfolgung wurde deaktiviert, und der BizTalk Server SQL Server-Agent Auftrag wurde während des Tests deaktiviert.

Um sicherzustellen, dass die Ergebnisse dieses Labs einen Vergleich der Leistung von BizTalk Server in einer physischen und Hyper-V-Umgebung bereitstellen konnten, wurden Leistungsmetriken und Protokolle an einem zentralen Ort für jeden Testlauf gesammelt.

Der Testclient wurde verwendet, um ein eindeutiges Ergebnisverzeichnis für jeden Testlauf zu erstellen. Dieses Verzeichnis enthielt alle Leistungsprotokolle, Ereignisprotokolle und zugehörigen Daten, die für den Test erforderlich sind. Dieser Ansatz lieferte Informationen, die erforderlich waren, wenn eine retrospektive Analyse vorheriger Testläufe erforderlich war. Am Ende jedes Tests wurden die Rohdaten in einem Satz konsistenter Ergebnisse und Key Performance Indicators (KPIs) kompiliert. Das Sammeln konsistenter Resultsets für physische und virtualisierte Computer lieferte die erforderlichen Vergleichspunkte zwischen den verschiedenen Testläufen und verschiedenen Umgebungen. Zu den gesammelten Daten gehörten:

  • Umgebung– Um aufzuzeichnen, in welcher Umgebung der Test ausgeführt wurde, BizTalk Server auf physischer Hardware oder BizTalk Server auf Hyper-V.

  • Testlaufnummer – So identifizieren Sie jeden Testlauf eindeutig

  • Testfall – Zum Aufzeichnen der Architektur der BizTalk Server Lösung, die während des Tests verwendet wird. (Beispiel: Orchestrierung mit logischen Ports im Vergleich zur Orchestrierung mithilfe von Inlinesendungen)

  • Datum– So zeichnen Sie das Datum und die Uhrzeit der Testausführung auf

  • Startzeit – Wie vom ersten VSTS-Auslastungstest-Agent gemeldet, der initiiert wurde

  • Angehaltene Zeit – Wie vom letzten VSTS-Auslastungstest-Agent gemeldet, der abgeschlossen werden soll

  • Testdauer in Minuten – So zeichnen Sie die Dauer des Tests auf.

  • Gesendete Nachrichten insgesamt – Um die Gesamtzahl der Nachrichten aufzuzeichnen, die während des Tests von den Load Agent-Computern an die BizTalk Server Computer gesendet wurden.

  • Gesendete Nachrichten pro Sekunde – Um die Nachrichten aufzuzeichnen, die während des Tests pro Sekunde von den Load Agent-Computern an die BizTalk Server Computer gesendet werden.

  • Durchschnittliche Clientlatenz : Aufzeichnen der durchschnittlichen Zeitspanne zwischen dem Zeitpunkt, in dem Test Load Agent-Clients eine Anforderung an die BizTalk Server Computer während des Auslastungstests initiiert und eine Antwort von den BizTalk Server-Computern empfangen haben.

  • Durchschnitt der Anforderungsantwortdauer (ms) – Wie vom Leistungsmonitor Zähler BizTalk:Messaging Latency\Request-Response Latency (Sek.) für bizTalkServerIsolatedHost gemeldet

    Hinweis

    Wenn mehrere virtualisierte BizTalk-Hosts ausgeführt haben, wurde ein Durchschnitt dieser Leistungsindikatoren gemäß der Berechnung aus den Protokollen verwendet.

  • Abgeschlossene Orchestrierungen pro Sekunde – Wie vom Zähler XLANG/s Orchestrierungen(BizTalkServerApplication)\Orchestrierungen abgeschlossen/s Leistungsmonitor gemeldet. Dieser Leistungsindikator bietet ein gutes Maß für den Durchsatz der BizTalk Server Lösung.

  • % der verarbeiteten < Nachrichten 3 Sekunden: Die Gesamtanzahl der während des Tests innerhalb von 3 Sekunden verarbeiteten Nachrichten wird erfasst.

    Der VSTS 2008-Auslastungstest wurde verwendet, um eine konsistente Auslastung in allen Tests zu generieren. Die folgenden Testlaufeinstellungen und das Auslastungsmuster wurden während des Tests geändert, um das Auslastungsprofil jedes Tests anzupassen:

  • Testlaufeinstellungen

    Die folgende Testlaufeinstellung wurde je nach ausgeführtem Test geändert:

    • Ausführungsdauer : Gibt an, wie lange der Test ausgeführt wird.

      Testlaufeinstellungen Testlaufeinstellungen

  • Testmustereinstellungen

    Die folgenden Testmustereinstellungen wurden je nach durchgeführtem Test geändert:

    1. Muster– Gibt an, wie die simulierte Benutzerauslastung während eines Auslastungstests angepasst wird. Lastmuster sind entweder konstant, schritt- oder zielbasiert . Alle durchgeführten Auslastungstests waren entweder Konstant oder Schritt.

      Hinweis

      Alle Tests, die für die Zwecke dieses Leitfadens durchgeführt wurden, verwendeten entweder ein Konstantes Auslastungsmuster oder ein Schrittlastmuster . Konstante Lademuster und Schrittlademuster bieten die folgenden Funktionen:

      • Muster mit konstanter Auslastung – Das Auslastungsmuster ist für die Dauer des Tests identisch, die Anzahl der simulierten Benutzer beginnt auf einer vordefinierten Ebene und ändert sich nicht.
        • Schrittlademuster – Das Auslastungsmuster wird während des Testlaufs erhöht. Die Anzahl der simulierten Benutzer beginnt auf einer vordefinierten Ebene und wird für die Dauer des Tests in vordefinierten Intervallen um einen vordefinierten Betrag erhöht.
    2. Konstante Benutzeranzahl (Konstante Auslastungsmuster) – Anzahl der virtuellen Benutzer, die Auslastung für die Endpunktadresse generieren, die in der app.config-Datei des Visual Studio-Auslastungstestprojekts angegeben ist. Dieser Wert wird in den Auslastungsmustereinstellungen angegeben, die für den Auslastungstest verwendet werden.

    3. Anfängliche Benutzeranzahl (Schrittlademuster) – Anzahl der virtuellen Benutzer, die zu Beginn eines Schrittauslastungsmustertests Auslastung für die angegebene Endpunktadresse generieren. Dieser Wert wird in den Auslastungsmustereinstellungen angegeben, die für den Auslastungstest verwendet werden.

    4. Maximale Benutzeranzahl (Schrittlademuster) – Anzahl der virtuellen Benutzer, die am Ende eines Schrittauslastungsmustertests Auslastung für die angegebene Endpunktadresse generieren. Dieser Wert wird in den Auslastungsmustereinstellungen angegeben, die für den Auslastungstest verwendet werden.

    5. Schrittdauer (Schrittlademuster) – Anzahl der Sekunden, die virtuelle Benutzer für die angegebene Endpunktadresse für einen Auslastungstestschritt generieren.

    6. Schrittbenutzeranzahl (Schrittlademuster) – Die Anzahl der virtuellen Benutzer, die bei Verwendung eines Schrittlademusters bei jedem Schritt erhöht werden sollen.

      Testmustereinstellungen Testmustereinstellungen

    Weitere Informationen zum Arbeiten mit Auslastungstests in Visual Studio 2013 finden Sie im Thema Arbeiten mit Auslastungstests in der Visual Studio 2013 Team System-Dokumentation unter https://go.microsoft.com/fwlink/?LinkId=141486.

Während des Tests gemessene Key Performance Indicators

Die folgenden Leistungsmonitor Indikatoren wurden als Key Performance Indicators (KPI) für alle Testläufe erfasst:

Hinweis

Weitere Informationen zum Auswerten der Leistung mit Leistungsindikatoren der Leistungsüberwachung finden Sie unter Prüfliste: Messen der Leistung in Hyper-V.

BizTalk Server KPI

  • Pro Sekunde verarbeitete Dokumente – Gemessen am Leistungsindikator BizTalk:Messaging/verarbeitete Dokumente/Sek .

  • Latenz– Gemessen, wie vom VSTS 2008-Load Test Controller zurückgegeben.

    SQL Server KPI

  • SQL Server Prozessorauslastung– Gemessen am Zähler SQL\Processor(Total)\%Processor Time. Dieser Indikator misst die CPU-Auslastung der SQL Server Verarbeitung auf dem SQL Server Computer.

  • Transact SQL-Befehlsverarbeitungsleistung : Gemessen am Leistungsindikator \SQL Server:SQL Statistics\Batch Requests/s. Dieser Leistungsindikator misst die Anzahl der pro Sekunde empfangenen Transact-SQL-Befehlsbatches. Dieser Leistungsindikator wird verwendet, um den Durchsatz auf dem SQL Server Computer zu messen.

    Netzwerk-KPI

  • BizTalk Server Netzwerkdurchsatz: Gemessen durch den Leistungsindikator \Netzwerkschnittstelle(*)\Bytes Gesamt/Sekunde auf den BizTalk Server-Computern.

  • SQL Server Netzwerkdurchsatz: Gemessen an der SQL-Netzwerkschnittstelle\Bytes Gesamt/Sekunde (Durchschnitt), die vom VSTS 2008-Load Test Controller zurückgegeben wird.

    Arbeitsspeicher-KPI

  • Verfügbarer Arbeitsspeicher – Gemessen am Leistungsindikator \Memory\Available Mbytes für die verschiedenen Szenarien.

Besonderheiten der physischen Infrastruktur

Für jeden installierten Server wurden die folgenden Einstellungen angepasst.

Für alle Server:

  • Die Auslagerungsdatei wurde auf das 1,5-fache der menge des zugeordneten physischen Arbeitsspeichers festgelegt. Die Auslagerungsdatei wurde auf eine feste Größe festgelegt, indem sichergestellt wurde, dass die Anfangsgröße und die maximalen Werte in MB identisch waren.

  • Die Leistungsoption "Für optimale Leistung anpassen" wurde auf dem erweiterten Bildschirm "Systemeigenschaften" ausgewählt.

  • Es wurde überprüft, ob das System für die beste Leistung der Hintergrunddienste im Abschnitt Leistungsoptionen der Systemeigenschaften angepasst wurde.

  • Windows Server 2008 SP2 wurde als Gastbetriebssystem auf jedem der virtuellen Computer installiert.

  • Windows Update wurde erfolgreich auf allen Servern ausgeführt, um die neuesten Sicherheitsupdates zu installieren.

    Für SQL Server:

  • SQL Server wurde gemäß der Installationsanleitung installiert, die unter https://go.microsoft.com/fwlink/?LinkId=141021verfügbar ist.

  • SQL Server verwendet, wurden die SAN-LUNs gemäß der folgenden Tabelle konfiguriert. Die Datenbank- und Protokolldateien wurden wie folgt in die LUNs getrennt, um mögliche Datenträger-E/A-Konflikte zu reduzieren:

    • Das Data_Sys Volume wurde verwendet, um alle Datenbankdateien (einschließlich System- und BizTalk-Datenbanken) mit Ausnahme der MessageBox- und TempDb-Datenbanken zu speichern.

    • Das Log_Sys Volume wurde verwendet, um alle Protokolldateien (einschließlich System- und BizTalk Server datenbanken) mit Ausnahme der MessageBox- und TempDb-Datenbanken zu speichern.

    • Das Data_TempDb Volume wurde zum Speichern der TempDb-Datenbankdatei verwendet.

    • Das Logs_TempDb Volume wurde zum Speichern der TempDb-Protokolldatei verwendet.

    • Die MessageBox-Datenbankdatei wurde auf dem Data_BtsMsgBox Volume und die Protokolldatei auf dem Log_BtsMsgBox-Volume gespeichert.

  • Darüber hinaus wurde eine separate LUN für die MSDTC-Protokolldatei bereitgestellt. Auf BizTalk-Systemen mit hohem Durchsatz hat sich gezeigt, dass die MSDTC-Protokolldateiaktivität einen E/A-Engpass verursacht, wenn sie sich auf demselben physischen Laufwerk wie das Betriebssystem befindet.

    Volumename Dateien LUN-Größe GB Hostpartitionsgröße GB Clustergröße
    Data_Sys MASTER- und MSDB-Datendateien 10 10 64 KB
    Logs_Sys MASTER- und MSDB-Protokolldateien 10 10 64 KB
    Data_TempDb TempDB-Datendatei 50 50 64 KB
    Logs_TempDb TempDB-Protokolldatei 50 50 64 KB
    Data_BtsMsgBox BizTalkMsgBoxDb-Datendatei 300 100 64 KB
    Logs_BtsMsgBox BizTalkMsgBoxDb-Protokolldatei 100 100 64 KB
    Data_BAMPrimaryImport BAMPrimaryImport-Datendatei 10 10 64 KB
    Logs_BAMPrimaryImport BAMPrimaryImport-Protokolldatei 10 10 64 KB
    Data_BizTalkDatabases Andere BizTalk-Datenbankdatendateien 20 20 64 KB
    Logs_BizTalkDatabases Andere BizTalk-Datenbankprotokolldateien 20 20 64 KB
    MSDTC-Protokolldatei 5 5
  • BizTalk Server wurde gemäß den Installationsanleitungen installiert, die unter https://go.microsoft.com/fwlink/?LinkId=128383verfügbar sind.

  • Das BPA-Tool (BizTalk Server Best Practices Analyzer) wurde verwendet, um die Plattformüberprüfung durchzuführen, nachdem das System konfiguriert wurde. Der BizTalk Server(https://www.microsoft.com/download/details.aspx?id=43382).

Virtualisierungs-Besonderheiten

Eine einzelne feste VHD mit 50 GB wurde verwendet, um das Betriebssystem für jeden virtuellen Hyper-V-Computer zu hosten.

Anstelle von VHDs mit dynamischer Größe wurden feste VHDs verwendet, da sie der Datei auf dem Laufwerk, auf dem sie gehostet wird, sofort den maximalen Speicher für die VHD zuordnen. Dadurch wird die Fragmentierung der VHD-Datei reduziert, die auf dem physischen Laufwerk auftritt, auf dem sie gehostet wird, wodurch die E/A-Leistung des Datenträgers verbessert wird.

Zum Einrichten der virtuellen Computer wurde eine Installation der Windows Server 2008 SP2 64-Bit-Edition auf einer einzelnen VHD durchgeführt. Nachdem alle entsprechenden Updates installiert wurden, wurde der virtuelle Basiscomputer mithilfe des Sysprep-Hilfsprogramms, das mit Windows Server 2008 SP2 installiert ist, im Verzeichnis %WINDIR%\system32\sysprep imagediert.

Diese Basis-VHD wurde dann kopiert und als Grundlage für alle virtuellen Hyper-V-Computer verwendet, die in der Umgebung bereitgestellt wurden. Sysprep wurde auf dem Basis-VHD-Image ausgeführt, um Systemsicherheits-IDs zurückzusetzen, bevor SQL Server oder BizTalk Server Binärdateien im System bereitgestellt wurden.

Hinweis

Die Ausführung von Sysprep, nachdem BizTalk Server auf dem Server installiert und konfiguriert wurde, kann durch die Verwendung einer Sysprep-Antwortdatei und skripts erreicht werden, die mit BizTalk Server bereitgestellt werden. Diese Beispielskripts sind für die Verwendung mit BizTalk Server konzipiert, die nur in 32-Bit- und 64-Bit-Versionen von Windows Server 2008 SP2 installiert sind. Weitere Informationen finden Sie in der BizTalk Server-Onlinedokumentation.

Die Unbeaufsichtigte Windows Setup-Referenz finden Sie unter https://go.microsoft.com/fwlink/?LinkId=142364.

Weitere Informationen

Anhang C: Hyper-V-Unterstützbarkeit von BizTalk Server und SQL Server