Suche Tipps gegen starke Serverauslastung
Thomas
- webserver
Hallo Leute,
ich habe eine Webseite mit relativ viel Traffic (2+ Mio. Seitenaufrufe pro Tag) sowie ein Forum mit ca. 100-200 Personen, die ständig online sind (Datenbank ist so 1 GB groß).
Ich habe nun schon einige Male den Serveranbieter gewechselt, bin jedoch am Ende immer unzufrieden, da die Serverlast zeitweise immer noch viel zu hoch ist (bis zu 800% laut Forumangaben in den Spitzenzeiten - im Schnitt aber 150%).
Die Webseite ist reines SHTML (wobei ich nur SHTML verwende um das Menü per include einzufügen - alles andere ist reines HTML bzw. XHTML). PHP- oder Perl-Scripte habe ich sonst praktisch keine. Da fällt eben nur das Forum groß rein.
Mein Server zur Zeit ist:
AMD XP 2800+, 2 GHz
2x 120 GB Festplatten
1536 MB RAM
Meine Frage wäre nun, ob mir jemand Tipps geben kann, wie ich die Serverlast etwas reduzieren kann. Also ob z.B. die Verwendung von PHP sinnvoller ist als SHTML oder ob ich Forum und Webseite auf zwei getrennten Servern laufen lassen sollte oder was für ein Server für meine Ansprüche nötig wäre.
Mein aktueller Server schlägt mit ca. 85 Euro pro Monat zur Kasse. Ich befürchte fast, dass ich wohl wieder einen stärkeren brauche.
Ich bin auf jeden Fall für jeden Tipp dankbar!
Gruß
Thomas
Um es mal kurz und knapp zu sagen: "Nicht raten, messen!"
Finde heraus, was genau langsam ist, was Last verursacht. Wenn Dir selbst das Know-How fehlt, arbeite mit dem Provider zusammen.
Ins Blaue hinein geraten:
* SSI ("SHTML") bedeutet, dass der Server jedes Mal wieder einige Dateien anfassen muß, um einen Request zu bedienen. Es wäre für den Server wesentlich leichter, wenn die Seiten vorberechnet wären. Es gibt diverse Programme, um SSI zu simulieren. Damit kannst Du mit wenig Arbeit die Seiten einmalig offline vorbereiten.
* Foren (insbesondere PHP-basiert) lassen sich bis zur Unkenntlichkeit customizen, erweitern und umbauen. Oft bleibt dabei aber die Performance auf der Strecke. Es gibt Foren, die schon für die Startseite 50 SQL-Requests verbrennen und ein bis zwei Sekunden rechnen müssen. In so einem Fall "back to the roots", jeden Schnickschnack abschalten, der nicht lebensnotwendig ist.
* Wie ist die Anbindung zwischen Webserver und Datenbank? Selbe Maschine oder eine große DB auf einer separaten Maschine? Wie breit ist die Verbindung zwischen beiden?
* Wie schnell kann der Webserver die Logs wegschreiben? (Sowas KANN ein Problem werden: http://www.heise.de/newsticker/meldung/11044) DNS-Lookups sollten bei stark frequentierten Servern ohnehin offline geschehen.
* Was treibt der Webserver, bevor eine Seite ausgeliefert wird? mod_rewrite, mod_include?
* Wie hoch ist die Auslastung der CPUs, der Platten, der Netzwerk-Interfaces? Eine Load Average von 400% ist für ein Quad-CPU-System absolut kein Problem, das bedeutet lediglich, das alle vier CPUs gut zu tun haben. Bei einem Single-CPU-System mit 400% stehen sich dagegen vier Prozesse ständig gegenseitig im Weg.
Alexander
Hallo Thomas,
das folgende passt vielleicht nicht direkt auf Deinen Fall aber blätter es mal
durch da wird eine Optimierung exemplarisch vorgestellt.
http://talks.php.net/show/torkey06/7
Viele Grüße
Stefan