Immer Ärger mit dem Apache

Der Beitrag wurde am 23. August 2006 von Oliver veröffentlicht

In den vergangenen Wochen hatte ich mal wieder einige Probleme mit einem meiner Server. Andauernd hat der Apache das Handtuch geworfen und sich bei einem Load über 100 festgesetzt. Vornehmlich am Wochenende, was natürlich doppelt ärgerlich ist. Die Problematik lässt sich auch an einer Ursache festmachen. Eine Site, bzw. eine Community nimmt im Augenblick richtig an Fahrt auf und kommt teilweise pro Stunde auf 1.000 Uniques, besonders am Abend. Damit kommt der Server einfach nicht klar. MySQL war schon optimiert, also musste ich mal wieder unter die Motorhaube gehen, denn jeden Abend den Apache neu zu starten macht auf Dauer auch keinen Sinn (und Spaß). Zuerst fand ich die “HostnameLookups”, die waren mir noch vom letzten “Tuning” bei einem anderen Server bekannt. Damit löst der Apache bei jedem Request die IP-Adresse auf und schreibt sie so in die Logfiles. Da ich das aber nicht unbedingt benötige und auch die Möglichkeit besteht, per Post-Processing die IPs in den Logs aufzulösen, kann man das beruhigt abstellen. Einfach in der Config “HostnameLookups off” und den Apache neu starten. Alleine diese kleine Anpassung bringt schon einiges zu Spitzenzeiten, was die Performance angeht.

Als nächstes sind da die symbolischen Links. Wer die nicht unbedingt benötigt, kann die auch abstellen. Stellt man die nicht ab, checkt der Apache unter Umständen bei jedem Request, ob irgendwo ein symbolischer Link dafür vorhanden ist. Kostet Zeit und Power, also per “<Directory /> Options -FollowSymLinks </Directory>” abstellen und wieder den Apache neu starten. Dann habe ich mich noch mit dem “KeepAlive” und “KeepAliveTimeout” beschäftigt. Manche meinen, der Server würde ein wenig langsamer, wenn man “KeepAlive” auf “off” setzt, andere meinen, er wird schneller. Ich habe es auf “off” gesetzt und bin damit zufrieden. Vorher hatte ich den “KeepAliveTimeout”, der auf 100 stand im Default-File, auf 3 gesetzt. “KeepAliveTimeout” ist quasi die Zeit, die ein Prozesse in der Röhre festhängt, bevor er letztlich gekillt wird. Also so niedrig wie möglich halten.

Mit den Anpassungen hat sich das Problem gelöst und die “Kiste” ist wieder richtig fix geworden. Selbst bei Peaks sind keine Verzögerungen mehr zu spüren. So soll das ja auch sein. Wer also eigene Server hat, der sollte solche Dinge mal abchecken, da lässt sich einiges an Performance freischaufeln. Hier mal noch einige Links zur Apache-Optimierung (zum Teil leider nur auf Englisch): Optimize Apache Server Performance. Tutorial zur Optimierung für High-Traffic Server. MySQL und Apache optimieren.

Abgelegt in Webmaster Work | Tags: none
Soziales: del.icio.us | Mister Wong | yigg.de | digg.com

Noch keine Kommentare »

RSS-Feed für Kommentare zu diesem Beitrag. TrackBack URI

Einen Kommentar schreiben

XHTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Powered by WordPress - Valid XHTML and CSS. ^Top^