
Welche Auswirkungen hat es auf die Leistung, wenn sich ein Webserver (Apache/PHP) und ein Datenbankserver (MySQL) an völlig verschiedenen Standorten mit unterschiedlichen Hosts befinden?
Bearbeiten: Es handelt sich um eine datenbankintensive Webanwendung, sodass jede Seite mehrere Besuche bei der Datenbank macht. Die Datenbank ist normalerweise der Flaschenhals bei Webanwendungen. Ich frage mich nur, ob die Netzwerkgeschwindigkeit im Vergleich zur typischen Geschwindigkeit von Datenbankinteraktionen von Bedeutung ist.
Antwort1
Dies hängt stark von der Verbindungsgeschwindigkeit zwischen den beiden Standorten ab. Einige Unternehmen verfügen über Hochgeschwindigkeits-Backbones zwischen ihren Rechenzentren, aber es scheint, als ob es sich um zwei verschiedene Unternehmen handelt. Da die Verbindung über das Internet und Leitungen außerhalb der Kontrolle der beiden Unternehmen erfolgt, gibt es auf diese Frage keine eindeutige Antwort.
Ich würde es nach Möglichkeit vermeiden. Wenn Sie wirklich der Meinung sind, dass dies der beste Ansatz ist, sollten Sie sich etwas wie Memcache ansehen, um die Abfragen aus der Datenbank zu erleichtern.
Antwort2
Welche Auswirkungen hat es auf die Leistung, wenn sich ein Webserver (Apache/PHP) und ein Datenbankserver (MySQL) an völlig verschiedenen Standorten mit unterschiedlichen Hosts befinden?
Ja, es gibt Auswirkungen auf die Leistung, und sie sind alle negativ. Ein solches System könnte funktionieren, insbesondere wenn die beiden Systeme über ein VPN mit einem Service Level Agreement verbunden sind, das sowohl auf Verfügbarkeit als auch auf Leistung basiert. Wenn Sie nur über „die Cloud“ gehen, haben Sie keine konsistente Netzwerkleistung und keineeine Kehle zum Würgenwenn die Konnektivität oder Leistung nachlässt.
frage mich nur, ob die Netzwerkgeschwindigkeit im Vergleich zur typischen Geschwindigkeit von Datenbankinteraktionen von Bedeutung ist.
Das hängt ganz davon ab,deinNetzwerkgeschwindigkeit unddeinDatenbank und Anwendung.
Bei der Netzwerkleistung müssen zwei Aspekte berücksichtigt werden: Latenz und Durchsatz. Sie müssen beide berücksichtigen.
Beispielsweise warten Benutzer oft geduldig (bis zu einem gewissen Grad) auf eine Suchanfrage. Sie werdennichthaben Sie Geduld, bis jede Seite geladen ist, während Sie durch eine Site navigieren. Während beide aus der Sicht des Benutzers als Latenz betrachtet werden, kann das erste Beispiel durch den Netzwerkdurchsatz zwischen Datenbank und Webserver gewichtet werden, während das zweite durch die Netzwerklatenz.
Oder auch nicht! Nur Tests werden es zeigen.
Antwort3
Welche Arten von Abfragen führen Sie durch?
Wenn Sie komplexe Abfragen durchführen, bei denen die CPU-Geschwindigkeit der limitierende Faktor ist, wird eine Verbindung zur Datenbank mit weniger als 10 MBit/s und eine hohe Latenz vielleicht nicht so stark auffallen. (Dies müssten jedoch entweder sehr komplexe Abfragen sein oder auf einem Rechner mit sehr geringer Leistung ausgeführt werden.)
Jedoch,Sie können die Dinge möglicherweise beschleunigendurch Cachen auf dem Webserver-Rechner oder durch Einrichten eines kleinen MySQL-Replikationsservers lokal auf dem Webserver, der Kopien aller häufig abgerufenen Daten bereithält.
Während sich die Remote-Speicherung Ihrer gesamten Datenbank negativ auf die Leistung auswirkt, hat die gemeinsame Speicherung an zwei Standorten aus Sicht der Notfallwiederherstellung definitiv positive Auswirkungen.
Antwort4
Wie groß ist die durchschnittliche Datenmenge, die vom Datenbankserver angefordert wird, wie groß ist die verfügbare Bandbreite zwischen beiden und wie hoch ist der Datenverkehr? Es sollte ziemlich einfach sein, herauszufinden, ob es zu einem Engpass kommt, der das Ganze zum Erliegen bringt.