3 Server-Lösung langsamer als vorher mit 2 Servern, Flaschenhals gesucht!

Apache, Lighttpd, nginx, Cherokee
mr_vista
Posts: 57
Joined: 2006-08-01 22:33
Location: Berlin

3 Server-Lösung langsamer als vorher mit 2 Servern, Flaschenhals gesucht!

Post by mr_vista » 2007-04-04 02:14

Hallo!

Folgendes Problem, das ich mir nicht erklären kann.

Ein Webprojekt wurde aus Perfomancegründen von einer 2 Serverlösung auf eine 3 Serverlösung umgestellt.

Früher:

Server 1: Bilder etc.
Server 2: MySql und Webserver


Nun läuft das Webprojekt auf 3 Servern

Server 1: Bilder, statische Inhalte (css, js)
Server 2: MySql Server (4.3)
Server 3: Webserver (lighttpd)

Das heisst der Nutzer ist auf Server 3 und Server 3 besorgt sich bei jedem Aufruf die dynamischen Inhalte vom MySql Server und die statischen Daten vom Bildserver.

Augenscheinlich läuft mit 3 Servern alles besser als vorher, jedoch wird der Seitenaufbau ab einer bestimmten Anzahl von Nutzern extrem langsam (sehr plötzlich), wo die 2-Server-Lösung früher noch besser war.
Die Loadwerte aller 3 Server sind dabei aber noch sehr entspannt. Der meistbeanspruchte Server ist Server 2. Der Loadwert liegt jedoch noch unter 5. Somit schliesse ich mal aus, dass es an der Überlastung eines Server liegt, da mit dieser Nutzerzahl die 2-Serverlösung noch gut klar kam.

Nun suche ich seit einigen Tagen den Flaschenhals. Kann es was damit zu tun haben, dass die MySql-Daten von einem externen Server aufgerufen werden bzw. gibt es vielleicht dafür in der my.conf eine Variable die ich verändern könnte?

Bin für jede Idee dankbar, die gepostet wird. Danke!

User avatar
daemotron
Administrator
Administrator
Posts: 2635
Joined: 2004-01-21 17:44

Re: 3 Server-Lösung langsamer als vorher mit 2 Servern, Flaschenhals gesucht!

Post by daemotron » 2007-04-04 07:13

So ganz ohne nähere Angaben zur Konfiguration und Logauszüge wäre alles hier ins blaue geraten. Logischerweise ist der erste Schritt festzustellen, welcher der Server wirklich der Flaschenhals ist - die Load ist zwar ein Indikator, aber keine hinreichende Bedingung 8)

Wenn Du den MySQL im Verdacht hast, poste auch mal die Ausgabe von

Code: Select all

SHOW STATUS;
das verrät einiges über die Cache-Nutzung etc. Weitere potenzielle Kandidaten: Forking von Lighty-Prozessen, Speicherbelegung und Swapping-Verhalten...

Grundsätzliche Optimierungsansätze:

stanglwirt
Posts: 48
Joined: 2006-01-10 14:44

Re: 3 Server-Lösung langsamer als vorher mit 2 Servern, Flaschenhals gesucht!

Post by stanglwirt » 2007-04-04 13:35

der webserver holt sich die bilder etc. vom datenserver und liefert diese an den user aus?
das wird der flaschenhals sein. statt die daten von seiner eigenen festplatte zu holen, muss er übers netzwerk zugreifen und diese dann doch selbst ausliefern. damit verlagerst du zwar die festplatten-zugriffe des webservers auf den datenserver, hast aber eine viel höhere latenz wegen der netzwerk aktivität.

lösung: der webserver wird nur entlastet, wenn der user direkt die bilder etc. vom datenserver bekommt - ohne umweg über den webserver.

mr_vista
Posts: 57
Joined: 2006-08-01 22:33
Location: Berlin

Re: 3 Server-Lösung langsamer als vorher mit 2 Servern, Flaschenhals gesucht!

Post by mr_vista » 2007-04-04 19:20

hey! danke euch beiden!

also das mit den bildern hab ich falsch beschrieben sorry. der user bekommt natürlich direkt die bilder vom bilderserver zu sehen... alles andere wäre ja eine mehrbelastung...

dennoch könnte der Server 1, dran "schuld" gewesen sein. habe eine kleinere ausgelagerte php funktion gefunden und deaktiviert. Server 1 ist ein nicht so gut ausgestatteter server und kam wohl nicht hinterher mit der auslieferung der daten und somit musste natürlich server 3 warten.
beobachte die sache derzeitig noch und warte die spitzenzeit ab ob das problem nun gelöst ist. danke und gruß