On Thu, Apr 19, 2007 at 10:51:39AM +0200, Sebastian Hegler wrote:
Am 18.04.2007 um 22:12 schrieb Thomas Guettler:
was macht man, wenn das RAID der Falschenhals eines Systems ist?
<SNIP>
Bist Du sicher, daß das das Problem ist?
Ich denke schon: Load>4, CPU 50% idle, wa (IO wait) groß
Fehlende Datenbank Indizes sind es vermutlich auch nicht. Die gleiche Anfrage braucht beim zweiten Aufruf einiges weniger Zeit. Mit dem Kommando "time" auf der Shell sieht man: sys und user sind beim ersten und beim zweiten Aufruf gleich. Der Wert von real ist beim zweiten Mal einiges größer. Da die Testanfrage auf der Shell keine Netzwerkverbindungen benutzt, denke, ich dass der IO-Zugriff der Flaschenhals ist.
Ansonsten nur der übliche Weg: Geld draufschmeißen. Meint, Web- und DB-Server auf zwei Maschinen verteilen, beide mit schön Hauptspeicher ausrüsten. Auf dem Web-Server nen Apache mit mod_cache/mod_proxy davorinstallieren, sofern nicht bereits ein Apache läuft. Evtl. kannst Du ja mal mit mod_cache/mod_proxy spielen und schaun, ob es was bringt.
Ich vermute, dass hier ein Rechner mit doppeltem RAM und schnelleren/mehr Platten sinnvoller ist. Da ich eher Softwareentwickler als Hardwareguru bin, wollte ich hier mal hören, was andere denken.
Sicherlich stößt ein Rechner irgendwann an die Grenzen, doch leider lässt sich bei der Anwendung nicht cachen. Es gibt vielleicht 20-30 kleine Icons, CSS und JS Dateien. Der Rest wird pro Request dynamisch erzeugt.
Leider lässt sich unter Linux das IO-Verhalten eines Prozesses nicht richtig nachvollziehen. Solaris und Windows sollen da besser sein. Wenn mehrere Prozesse auf dem Rechner laufen, nützen die Ausgaben von iostat nicht viel, weil sie die Daten nur pro Partition anzeigen.
Gruß, Thomas