
Ich migriere unser Web- und Datenbankhosting in eine neue Umgebung auf allen neuen Maschinen. Ich habe kürzlich einen Belastungstest durchgeführt mitWAPTum Last von mehreren verteilten Clients zu erzeugen. Der Server hat genügend Platz, um die Verkehrslast zu bewältigen, aber ich sehe während der Belastungstests ein merkwürdiges Muster des eingehenden Datenverkehrs.
Hier ist der Kern unseres Setups:
- Firewall-Server mit MS Forefront TMG 2010 auf einem Win 2k8-Server
- Anforderungsrouting erfolgt durch IIS Application Request Routing auf Firewall-Rechner
- Der Webserver ist eine Hyper-V-VM auf dem Datenbankserver (dem Host-Betriebssystem).
- Diese Maschinen sind leistungsstark und verfügen über Dual-CPUs mit sechs Kernen (insgesamt 12 Prozessoren).
- Webserver mit IIS 7.5
- Webanwendungen erstellt in ASP.NET 2.0, mit 1 ISAPI-Filter (Url Rewrite) vorn
Was ich während der Belastungstests sehe, ist, dass die Anfragen alle in Schüben durchkommen. Obwohl ich 7 verschiedene verteilte Clients habe, die Datenverkehr senden, kommen die Anfragen jeweils etwa 300-500 Mal durch.
Der Leistungsmonitor zeigt, dass fast alle Zähler dieses Muster durchlaufen, wobei eine Reihe von Anfragen kommt, die Anzahl der Anfragen pro Sekunde springt auf 70, die Anzahl der Anfragen in der Warteschlange springt auf 500, die Anzahl der aktuellen Anfragen springt hoch, die CPU springt hoch, alles. Wenn diese Gruppe von Anfragen dann verarbeitet ist, gibt es eine Flaute von fast 10 Sekunden, in der fast nichts passiert. 0-5 Anfragen pro Sekunde, 0 Anfragen in der Warteschlange, minimale CPU-Auslastung. Dann, nach 10 Sekunden Inaktivität, kommt ein weiterer Ausbruch, der alle Zähler erneut in die Höhe treibt.
Was ich nicht herausfinden kann, ist, warum die Anfragen in Schüben eingehen, obwohl ich weiß, dass die generierte Last nicht auf diese Weise gesendet wird, insbesondere wenn man bedenkt, dass die verschiedenen lastgenerierenden Clients alle in unterschiedlichen Intervallen Datenverkehr senden, mit zufälligen Wartezeiten zwischen den einzelnen Anfragen. Gibt es etwas in den Schichten zwischen Hyper-V oder vielleicht in der Hardware, das diese Verschmelzung von Anfragen verursachen könnte?
Folgendes sehe ich mir an: Die hervorgehobene Metrik ist „Anfragen/Sek.“, aber die anderen kritischen Indikatoren gehören dazu: „Anfragen in der Warteschlange“ (die ich natürlich so nahe wie möglich bei 0 halten möchte).
Irgendwelche Ideen dazu?
Antwort1
Nach vielen weiteren Tests und Recherchen bin ich zu dem Schluss gekommen, dass dieses Problem auf das WAPT-Lasttesttool zurückzuführen ist. Es gab einige Einstellungen, die dieses Muster veränderten, wenn man sie anpasste.
Ich habe bestätigt, dass dies ein Produkt des WAPT-Testtools war, nachdem ich eine WAPT-Instanz eingerichtet und den Leistungsmonitor sowohl auf dem Webserver als auch auf der Maschine verwendet habe, die die Last erzeugt. Es lässt sich leicht korrelieren, wenn man sieht, dass die über die Netzwerkschnittstelle gesendeten Pakete in denselben Intervallen und zu denselben Zeiten Spitzenwerte aufweisen wie die Anfragen/Sekunde auf dem Webserver.