Wie man seinen Webserver schneller macht

Abgelegt unter Blogging by Redaktion am 24. April 2008

Zur Ausgangslage: In der Grundkonfiguration kam mein neuer Strato V-Server mit Apache2, PHP5, MySQL und Plesk daher. Insgesamt hat der Server 512MB reservierten Arbeitsspeicher und ca. 1-2 GB dynamischen Gesamtspeicher. Anfangs lief eigentlich auch noch alles recht gut, ohne großen Inhalt. Nachem ich meine 5 Webseiten eingreichtet hatte, wohlgemerkt ohne aktiver BLOGmachine, ging fast gar nichts mehr. Zuviele Anfragen in zu kurzer Zeit, der Apache hat einfach dicht gemacht. 🙁

Ursache: Der Wert für MaxClients stand auf 10, was bei mehreren Tausend Besuchern am Tag natürlich ein wenig zu niedrig ist. Den Wert also hochgestellt und schon fluppten die Seiten wieder. Dann hab ich die BLOGmachine aktiviert, mehrere dutzend Zugriffe pro Sekunde! Die virtuelle Kiste ging wieder in die Knie. Also hab ich die BLOGmachine wieder deaktiviert. 😉

Hauptproblem beim Apache2 ist wohl, dass für jeden Client ein eigener Prozess verwendet wird (Preforker-Modus). Das ist zwar für wenige Clients gut, aber nicht für Seiten mit viel Traffic. Man kann zwar auch hier die MayClients erhöhen, das frisst aber extrem viel Speicher. Dafür gibt es den Worker-Modus, wenige Prozesse mit vielen Threads können viele Clients bedienen. Eigentlich genau das, was mein Problem lösen würde. Aber…

Seit Apache2 als Stable verfuegbar ist, fragt man sich warum PHP nicht fuer diese Version empfohlen wird, bietet sie doch soviele
Vorteile. Das PHP-Team raet davon ab PHP in Apache 2.0-Produktiv Umgebungen einzusetzen. Das liegt am neuen Thread-Modell welches in Apache uebernommen wurde und dazu dient effektiver viele Anfragen zu bearbeiten. Die Zend-Core von PHP ist zwar threadsafe, aber viele Bibliotheken […] die PHP benutzt sind es nicht.

Bei Apache2, im Zusammenspiel mit PHP5, kann man also nicht so einfach in den Worker-Modus wechseln. Zumindest nicht ohne auf Probleme zu stossen. 🙁

Auf der Suche nach anderen Lösungen ist mir noch Caching in den Sinn gekommen. MMCache verspricht wesentliche Performance-Verbesserungen für PHP-Seiten. Also hab ich das Teil auf dem Server installieren wollen. Das Problem: MMCache lässt sich nicht wirklich mit PHP5 kompilieren. Also hab ich weiter gesucht und eAccelerator gefunden, ein auf MMCache basierendes Projekt. eAccelerator war schnell installiert und brachte dann auch erste Erfolge. Weniger Speicherauslastung und deutlich geringerer CPU-Verbrauch der Apache-Prozesse.

Nach diesem Erfolg hab ich dann die BLOGmachine wieder aktiviert. Nun hat es schon besser ausgesehen, Apache und PHP kamen mit der Last klar, nur MySQL brauchte immernoch 80-90% CPU. Also hab ich einen Teil der BLOGmachine (Keyword-Statistik) wieder abgeschaltet und nun sinds noch so 10-20% CPU-Last.

Die Grundfunktionen der BLOGmachine laufen also zum Teil wieder. 🙂 Jetzt geht es „nur“ noch darum den lastintensiven Code zu optimieren und evtl. an ein paar MySQL-Einstellungen zu schrauben, dann läuft das Baby wieder rund.

Eine gute Seite zum Thema Performance: Apache-Tuning!

Achja, hier noch was passendes aus einem Newsletter, den ich heute bekommen habe:

„Internet-Millionär in 24 Monaten“ […] Wenn Sie sich als CMS-Webmaster anmelden, was für Sie völlig kostenlos ist, dann können Sie bei […] über einen Speziallink 50 % Rabatt auf das SalesPower-Paket bekommen. Damit kostet Sie jede Website nur 28 Cents (!) pro Monat.

Meine Meinung: Ohne Traffic keine Einnahmen, viel Traffic bedeutet aber auch viel nötige Serverleistung, die für 28 Cent im Monat kein Provider auf Dauer bieten wird. Ohne Serverleistung, kein Traffic, keine Millionen. 😉 Schei… Newsletter.

 

3 Kommentare zu 'Wie man seinen Webserver schneller macht'

Die Kommentare per RSS abonnieren


  1. am 27. April 2008 um 10:57 am Uhr

    Hi, mir geht’s da so ähnlich wie dir. 😉 Bin grad auch Server-Stressed, der hängt sich bei mir immer mal wieder alle 3 Tage auf. Natürlich immer Samstag, wenn der ganze DSDS Besucheransturm kommt. :S

    Denke das Problem bei mir lag nicht bei den 150 Max Clients (trotzdem mal erhöht) sondern in der confixx_mhost. Na mal sehen …

  2. Paul sagte,

    am 28. April 2008 um 8:32 am Uhr

    Danke für den Artikel is favoritisiert^^.

    Hab zwar keinen Server, aber das soll bald kommen, und dann muss ich mich da auch mal belesen.

    Mfg


  3. am 26. Mai 2008 um 5:49 pm Uhr

    […] weil trotz eigenem V-Server, die BLOGmachine immernoch sehr hungrig war. Nach ein paar ersten Optimierungen lief die Seite zwar wieder wie gewohnt, aber leider ging der Server zu den Spitzenzeiten […]




Bitte JavaScript aktivieren!