← Journal · Archiv

Stresstest

April 24, 2006

An english version of this article can be found here.

Das Compilieren des Snipers auf dem Sun verlief reibungslos. Glücklicherweise verwende ich unter Debian die selbe gcc-Version wie jetzt unter Solaris. Das Compilieren ging recht flott und meine subjektive Beurteilung im Vergleich zu unserem Dual Prozessor HP Proliant DL 360 ist, dass der T2000 nur ein Stück weit schneller den Code zussamensetzt. Gut, der Code compiliert auch nur wenige Sekunden und bietet damit auch kaum Spielraum für Geschwindigkeitsmessungen.
Im Vergleich: Mein Apple iBook compiliert den Code auch nur ein bisschen langsamer als der vielfach schnellere HP Proliant. Von daher brauch man diesen Benchmarks nicht viel beimessen.
Den eigentlichen Stresstest in dem sich der T2000 beweisen musste hatte ich wie folgt aufgebaut.
Da sich der Sniper unter Solaris nicht im Produktivbereich befand, tat der HP Proliant-Server so als sei er eBay.com, der wiederum die Anfragen des Snipers so schnell wie möglich versuchte entgegen zu nehmen.
Um einen Vergleichswert zu haben, machte der HP Proliant das gleiche mit dem T2000 als Sparingspartner.
Die Ausgangssituation war auf beiden Servern annähernd die gleiche. Ein frisch installiertes Solaris auf dem T2000 und ein frisch installiertes Debian Sarge auf dem HP Proliant. Beide mySQL-Datenbanken fütterte ich mit Testdaten für genau zwei Stunden kontinuierliche Gebote die auf den Sparingspartner einprasselten. Die Gebote stiegen in Ihrer Häufigkeit linear zur verstrichenen Zeit an und gipfelten in der sechsfachen Belastung der unser jetziger Server an einem Sonntag Abend um 20:30 Uhr (PrimeTime auf eBay) ausgesetzt ist.
Das bedeutet am Ende waren bis zu 1200 Threads gleichzeitig offen, die alle Speicherplatz und Prozessorzeit belegten.
Um einen Vergleich der Performance zu haben testete ich mit einem einfachen Script die Antwortzeiten der mySQL-Datenbank auf beiden Systemen. Der Einfachheit halber machte ich die Anfragen von meinem iBook anstatt direkt auf beiden Systemen.

Um die Spannung zu steigern, fange ich am Besten mit den Ergebnissen des HP Proliant an, der bei ca. 600 Threads und somit mit mindestens 600 offenen Verbindungen zur mySQL-Datenbank bereits große Performance-Probleme zeigte. Zu diesem Zeitpunkt war er etwas mehr als der Hälfte der maximalen Belastung im Stresstest ausgesetzt. Bei 800 Threads reagierte das System nur noch sehr träge und die mySQL-Datenbank lieferte nur noch Timeouts, was wiederum in gekillte Threads resultierte.
Als das System kaum noch auf Eingabe reagierte brauchte ich eine Minute ehe ich via SSH die Datenbank mit /etc/init.d/mysql stop abschalten konnte.

Der Stresstest schien also optimal die Grenzen des HP Proliant auszureizen. Der T2000 folgte im Verhalten in keinster Weise seinem Kollegen in Silizium.
Erste Anzeichen dass der T2000 überhaupt etwas macht, stellte sich kurz vor der Stelle ein, bei der seine Konkurrenz zuvor gescheitert war. Danach stieg auch bei ihm die Belastung gemessen an den Verbindungszeiten zügig an. Eine annähernd volle Auslastung die seine Grenzen aufzeigten, stellten sich während des Tests nicht ein.

Fazit: Nach dem Test wurde mir klar was für ein Performance-Monster der T2000 ist. Von einer Blamage für den HP Proliant möchte ich nicht reden, da er sicher mit gleich viel RAM, wie beim T2000, etwas länger durchgehalten hätte.

4 Kommentare

Centurio ·

Geniales Teil, diese Sun Maschine Wie bildest du denn den Ebay Server nach? Bzw. wie hast du damals überhaupt rausgefunden, wie die Biet Anfragen an den Ebay Server übertragen werden?

lemming ·

Der Apache ist halt so konfiguriert, dass er alle Anfragen auf eine Seite umleitet die dem Sniper als i. O. vorscheint. Ansonsten in der /etc/hosts des Testkandidaten den Sparingspartner als ebay.com eintragen.

Wie der Sniper die Anfragen abschickt ist Berufsgeheimnis

Centurio ·

komisch, woher wusste ich bloß, dass diese Fragen kommen musste Ne was mich interessiert ist, wie hast du das rausgefunden wie das verschickt wird an Ebay? Hast du dir den ganzen Tag lang Traffic an Ebay Protokolliert und hast dir dann die Parameter angeguckt die da per Get oder Post übergeben werden?
Also so im Allgemeinen ist das doch ne interessante Frage, weil man damit bestimmt auch einige andere Sachen automatisieren könnte

lemming ·

Ich sage nur »Reverse Engineering«

Kommentar hinterlassen