Leistungstests für LAMP-Cluster – Wie findet man einen Engpass?

Leistungstests für LAMP-Cluster – Wie findet man einen Engpass?

Ich habe einen Cluster aus 3 Knoten eingerichtet, auf denen eine LAMP-Anwendung läuft, wobei HAProxy den Lastausgleich übernimmt. Jetzt möchte ich das System optimieren und einem Belastungstest unterziehen. Daher verwende ich jmeter-ec2, das 15 AWS-t1.micro-Instanzen aus der Region Irland hochfährt und einen Jmeter-Test gegen den Cluster ausführt, der sich in einem dedizierten Rechenzentrum in Deutschland befindet.

Das Problem ist, dass die Server bei 0,5 Last kaum schwitzen, während JMeter nur etwa 70 tps meldet. Jetzt frage ich mich, wo der Flaschenhals ist und warum das System nicht mehr tps bereitstellt.

Ich suche Hilfe, wie ich dieses Problem angehen soll, um einen Dienst nach dem anderen zu optimieren. Um die App zu bedienen, laufen MySQL Galera, Apache, NginX und Solr, alle mit Standardkonfigurationseinstellungen. Der Cluster besteht aus 3 neuen Bare-Metal-Knoten mit 32 GB RAM und vier XEON-CPUs, die über Gigabit-LAN ​​miteinander verbunden sind.

Vielen Dank im Voraus für hilfreiche Hinweise zur systematischen Feinabstimmung/Konfiguration des Systems.

Antwort1

Versuchen Sie, Teile des Systems zu entfernen, um den Flaschenhals zu finden. 15 Testserver klingen nach einer ganzen Menge! Sie sollten in der Lage sein, Tausende von TPS aus einer einzigen Testeinheit herauszuholen. Sie verlangen doch nicht von HAProxy, auf eine Antwort zu warten, oder? Das heißt, es nutzt die Maxconns-Funktionalität und die Warteschlangenfunktion? Wie gesagt, versuchen Sie es zu vereinfachen, aber wenn Sie glauben, dass es an HAProxy liegt, veröffentlichen Sie bitte die Konfiguration.

Antwort2

Ich denke, dass die Testclients für mich ganz offensichtlich ein Problem darstellen.

  1. Sie verwenden t1.micro. Diese sind grundsätzlich kostenlos und das aus gutem Grund. Wechseln Sie zum Testen zu mindestens m3.medium, large oder xlarge. Sie können sie beenden, wenn Sie fertig sind.

Kommentare aus der Amazon-DokumentationT1 Micro-Instanzenfasst es gut zusammen.

„Stachelige Leistung“,

„Entwickelt, um Dutzende von Anfragen pro Minute zu unterstützen“

Aber für einen Benchmark möchten Sie versuchen, Ihren Server zu überfordern. Sie möchten Hunderte von Anfragen pro Sekunde. Das ist etwas mehr, als diese liefern können.

  1. Der Testcluster befindet sich nicht lokal beim Testclient, was zu zusätzlicher Latenz führt. Ihr Cluster befindet sich 1600 km entfernt in einem anderen Land. Das wird auch nicht helfen. Beachten Sie also unbedingt Punkt 3.

  2. Stellen Sie sicher, dass Ihre Testclients im Multithread-Modus ausgeführt werden.

  3. Verwenden Sie EU (Irland) – eu-west-1, was zum Testen des Endpunkts die bessere Wahl ist.

verwandte Informationen