• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Leistungsgrenzen von LAMP

wegwegweg

Newbie
Hallo,

wir haben einen Server mit knapp 90.000 Visits täglich. Leider geht der Server arg in die Knie. Der Server ist von der Hardware eigentlich gut besetzt:

Intel(R) Pentium(R) 4 CPU 2.80GHz
Cache Size 512 KB
Arbeitsspeicher: 2 GB

Die Load Averages ist am absoluten Limit: 61.04 54.70 60.35

Jetzt ist für mich einfach die Frage. Kann ein solcher Server eine "gut besuchte" Webseite mit viel php, mysql und auch statischen Seiten normalerweise bedienen, oder muss ich einen zweiten Server installieren und z.B. MySQL separat laufen lassen?

Mittlerweile läuft auch schon ein lighttpd und eaccelerator...

Wer kann helfen?
 

panamajo

Guru
cybersoccer schrieb:
wir haben einen Server mit knapp 90.000 Visits täglich.
Visits im welchen Sinne?
Hier mal die Begrifflichkeiten wie sie von webalizer verstanden werden (en): http://www.webalizer.org/webalizer_help.html

cybersoccer schrieb:
Die Load Averages ist am absoluten Limit: 61.04 54.70 60.35
:shock:

Zur Frage ob MySQL auf einem seperaten Server was brigen würde: kommt drauf an wo denn derzeit die Hauptlast liegt.
 
OP
W

wegwegweg

Newbie
Ja, im Sinne des Webalizer:

Hier mal die Zahlen von einem "guten" Tag:

Hits: 7.280.414 5.90%
Files: 5.723.375 6.04%
Pages: 842.244 6.18%
Visits: 90.004 5.96%
Sites: 71.246 7.29%
KBytes: 19.334.234 5.76%
 

panamajo

Guru
Hui, da gehts ja wirklich ganz schön ab! :D

Ein seperater MySQL Server wäre wohl die am einfachsten zu konfigurierende Lösung. Wenn das nicht reicht (und bei der load avg kann das gut sein) wirst du wohl um eine Cluster Lösung nicht herum kommen.
 

Fytzi

Hacker
Mehr Ram wäre auch sinnvoll 2GB sind da schon meiner Meinung nach eher die untere Grenze.
 
OP
W

wegwegweg

Newbie
Gibt es kurzfristige Lösungen? Wo finde z.B Hinweise zum "tunen"? Wer hat Erfahrungen mit dem "tunen" von solchen stark beanspruchten Servern?

Was ist ein "Cluster"-Lösung?
 

Yoss

Newbie
Hi cybersoccer,

versuch zuerst rauszufinden, was der Flachenhals ist. Ist die CPU zu langsam, Speicher zu klein oder Festplatte zu langsam.
Ob der Speicher zu klein siehst du am Pagging. Die beiden anderen Faktoren sind etwas komplexer.

wichtig wäre auch zu wissen, welcher Teil (apache,mysql) welche ressourcen beansprucht.
Da du Webserver und Datenbank auf einem Rechner hast wird die Diagnose schwieriger. Ist immer sehr stark anwendungsabhängig.
Gibt es zum Beispiel irgendwelche Datenbankabfragen, die den Rechner übermäßig belasten?

Kennst Du Dich mit den entsprechenden Befehlen aus um die notwendigen Parameter zu ermitteln?


Viel Grüße

Yoss
 

panamajo

Guru
cybersoccer schrieb:
Wer hat Erfahrungen mit dem "tunen" von solchen stark beanspruchten Servern?
Wie Yoss geschrieben hat: von außen kann man dir nicht wirklich zu etwas raten, dann man kennt ja den Flaschenhals nicht. Neben HW Aufrüstung könnte auch Optimierung des PHP Codes oder der SQL Anfragen schon viel bringen (hängt von der Qualität des aktuellen Codes ab), ggf. helfen auch Caching Mechanismen.
Bei einer derart hohen Besucherzahl lohnt sich das optimieren des Codes bestimmt...
cybersoccer schrieb:
Was ist ein "Cluster"-Lösung?
In diesem Kontext: die Anfragen an den Webserver werden auf mehrere Rechner verteilt, die DBs automatisch Repliziert.
Große und populäre Boards (heise.de slashdot.org) arbeiten so.
 
OP
W

wegwegweg

Newbie
Kennst Du Dich mit den entsprechenden Befehlen aus um die notwendigen Parameter zu ermitteln?

Leider nicht.

Ich kenne zwar die TOP und habe ein Auswertungsgraphen am laufen, der mir Traffic, PHP Queuelength, CPU Usage und Load Average sowei Memory Usage verrät.

Wer Interesse hat, kann ich gern den Zugang geben.
 
OP
W

wegwegweg

Newbie
panamajo schrieb:
cybersoccer schrieb:
Wer hat Erfahrungen mit dem "tunen" von solchen stark beanspruchten Servern?
Wie Yoss geschrieben hat: von außen kann man dir nicht wirklich zu etwas raten, dann man kennt ja den Flaschenhals nicht. Neben HW Aufrüstung könnte auch Optimierung des PHP Codes oder der SQL Anfragen schon viel bringen (hängt von der Qualität des aktuellen Codes ab), ggf. helfen auch Caching Mechanismen.
Bei einer derart hohen Besucherzahl lohnt sich das optimieren des Codes bestimmt...
cybersoccer schrieb:
Was ist ein "Cluster"-Lösung?
In diesem Kontext: die Anfragen an den Webserver werden auf mehrere Rechner verteilt, die DBs automatisch Repliziert.
Große und populäre Boards (heise.de slashdot.org) arbeiten so.


Meine grundsätzliche Frage ist auch eher, ob man eine Daumenzahl angeben kann bei wievielen Visits ein "normales" LAMP an die Grenzen stößt. Mittlerweile habe ich übrigens über 100.000 Visits.... :)
 

Yoss

Newbie
Hallo cybersoccer,

nein kann man nicht. Das ist abhängig von der Anwendung.

Ein paar Fragen zum Nachdenken:

Wieviel % sind dynamische und statische Seiten?
Wie aufwendig ist die Generierung der dynamischen Seiten?
Wie groß sind die Seiten?
Wie groß sind die Tabellen in der Datenbank?
Sind es nur Lese- oder auch Schreibzugriffe?
Wieviel % der Datenbankanfragen können aus dem Cache beantwortet werden?
...


Diese Liste lässt sich ziemlich lang fortsetzen und jede Frage kann zwischen Sein- und Nichtsein Deines Rechners entscheiden.

Um Deinen Rechner optimal auszunutzen, mußt Du wie schon geschrieben den/die Flaschenhälse identifizieren und beseitigen. Natürlich kannst Du Dir einfach nen zweiten Rechner kaufen, das wird höchstwahrscheinlich helfen. Aber dann weisst Du immernoch nicht, ob es vielleicht auch billiger und einfacher gegangen wäre... (Optimierung der Anwendung, ...) .



Viele Grüße

Yoss
 
OP
W

wegwegweg

Newbie
Hallo Yoss,

leider kann man die Fragen bei diesem Projekt nicht so einfach beantenworten, weil von allen etwas dabei ist. Wir versuchen möglichst viele statische Seiten zu erzeugen, trotzdem gibt es auch wieder sehr umfangreiche, aufwendige Datenbankabfragen.

Vielleicht hast Du ja mal Lust auf ein paar Cacti-Diagramme zu schauen oder mal einen kleinen Blick auf das Projekt werfen:

seidel@transfermarkt.de
 
OP
W

wegwegweg

Newbie
litemaster schrieb:
cybersoccer schrieb:
KBytes: 19.334.234 5.76%
Wie breit ist eigentlich der Uplink? Das sind immerhin 19GB pro Tag.

Eventuell kann eine Kompression des Outputs helfen (was dann allerdings wieder die Prozessorlast erhöht :roll:)


Die Frage verstehe ich nicht ganz genau?

Der Server hat eine 100 MBit Netztwerkkarte. Das Rechenzentrum soll nach eigener Aussage diese Karte problemlos bedienen können.

Habe dann noch eine Statistik über Traffic-Outbound:
Current 249,99 k
Average 302,77 k
Maxium 355,54 k

Der Inbound liegt bei ca. 15 %
Current: 27,76 k
Average 33,25 k
Maxium: 38,75 k
 
Oben