Rene: Apache aufrüsten? Was bringt was? Ist GZIP ratsam?

Beitrag lesen

Möglich, dass ihr einen oder zwei ständig laufende Prozesse hattet, eventuell durch einen Einbrecher verursacht.

Iiieek, ich hoffe nicht ;-)

Load von 2 auf einer CPU mit vier Kernen entspricht 50% Auslastung.

Load von 0.4 auf einer 16-Kern-Maschine entspricht einem Load von 0.1 auf der Vier-Kern-Maschine, Load von 1.7 auf 16 Kernen einem Load von 0.425 auf den 4 Kernen - rein von der Auslastung her betrachtet, bzw. der Luft nach oben.
LOAD ist recht simpel: Pro CPU-Kern bedeutet ein Load von einer Einheit 100% Auslastung. Eine 1-Kern-CPU sollte also immer deutlich unter Load 1 gefahren werden, eine CPU mit 4 Kernen kann LOAD von 4 ab für 100% Auslastung. Mit einer Dual-8Kern-Maschine ist eine 100%-Auslastung bei LOAD 16.

Ah, gut zu wissen.

Allerdings: Ein normaler Webserver kann, wenn er nix zu tun hat, auch Load von nahezu 0 haben. Wenn das nicht passiert, ist was kaputt und muss untersucht werden.

Nachts liegt der Load bei fast 0, da laufen nur ein paar cronjobs.

Ich hatte es mal erlebt, dass ein frisch vom Provider installierter Server leichtsinnigerweise ein ratbares User-Passwort für einen Standard-Account gesetzt bekam, und sich innerhalb von nicht einmal einer Stunde ein Bot einloggen konnte, sofort seinen Angreifer benachrichtigt hat, und dieser dann letztendlich nur eine Software installiert hat, die unter diesem Account ständig einen CPU-Kern voll ausgelastet hat, weil sie vermutlich in einer Endlosschleife irgendeinen Server betrieben hat. Warum diese Software so deutlich erkennbar Last auf der CPU verursacht hat, habe ich nicht im Detail untersuchen können, aber es war deutlich sichtbar, dass da was nicht stimmte.

Ich denke und hoffe, dass das bei uns nicht der Fall ist bzw. war.

Es sollte analysiert werden, wo genau die Probleme sind. Und einfache Schritte sind natürlich leichter zu implementieren, als komplizierte Schritte. Analysen von Querys oder Codeoptimierung sind komplizierte Schritte.

und zeitaufwendig

Problematisch ist immer, wenn die Festplatte aktiv werden muss. Deshalb wird man beispielsweise die Datenbank so konfigurieren, dass sie den gesamten Datenbestand komplett gecached im RAM halten kann. Das kann bedeuten, dass man einen eigenständigen Datenbankserver benutzt, der nichts anderes tut, der mit entsprechend viel RAM ausgestattet ist, und der dann über eine schnelle Netzwerkanbindung an den Webserver angeschlossen ist. RAM ist durch nichts zu ersetzen - außer durch mehr RAM.

Auch das Caching des Webservers sollte einer kritischen Betrachtung unterzogen werden. Der Apache-Webserver ist zwar sehr universell, aber auch recht langsam. Erstens gibt es alternative Webserver, die vor allem bei hoher Last deutlich besser skalieren, zweitens gibt es auch Reverse-Proxys wie z.B. Varnish, die die cachebaren Requests einfach aus ihrem eigenen RAM beantworten, ohne den Apache zu fragen.

Weiterhin kann man auch recht effektiv Caching innerhalb der Webapplikation einbauen, wenn man analysiert hat, wo dort bislang die Schwachpunkte waren.

Ja, Caching ist auch eine Überlegung wert

Und man liest ja hier und da mal auch was negatives
http://aktuell.de.selfhtml.org/artikel/server/apachetuning/index.htm#a12
Daher sind Erfahrungswerte dienlicher, denke ich.

Der Artikel ist von 2004 (siehe Metatags). Die Probleme mit Netscape 4 und schlechten Proxy-Servern dürften mittlerweile nicht mehr existieren, und die notwenig höhere Rechenlast der CPU wird heutzutage einfach durch die riesigen Leistungsgewinne bei aktuellen CPUs irrelevant.

Danke für die ausführliche Antwort!