Server hängt sich regelmäßig auf

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
horst98
Mitglied
Beiträge: 13
Registriert: 31.03.2004 15:41

Server hängt sich regelmäßig auf

Beitrag von horst98 »

Hallo,

ich betreibe ein V2.0.17 Forum (www dot forum dot thewhiskystore dot de), das mittlerweile 90.000 Posts und 5.000 User hat. Der Zugriff ist gut, aber nicht üppig. Maximal 2.000 viewtopic-Abfragen pro Stunde. Der dedizierte Server (eine 3 GHz Quad-Core Maschine mit 12GB RAM und RAID10 Plattenarray) langweilt sich so dahin. Bis vor zwei Monaten hatte ich eine 2,4 GHz Dual Core Maschine mit nur 4GB RAM und RAID1 Plattenarray. Da lief das Forum zwar langsamer, aber durchaus akzeptabel.

Jetzt nach dem Umstellen auf den schnellen Server hängt sich das System ab und an richtig auf. Mehrere Minuten lang geht dann gar nichts. Das ist wirklich komisch. Nicht, dass der Server zäh und langsamer würde. Er bleibt auf einmal einfach so stehen. Ohne es vorher 'anzukündigen'. Alle Anfragen an den Server bleiben hängen und werden nicht abgearbeitet. Dann nach einigen Zig bis Hunderten an Sekunden kommt dann die Abfrage ohne Fehlermeldung durch. Interessanterweise werden auch statische Webseiten in dieser Zeit nicht ausgeliefert. Als ob der apache-Server hängen bleibt.

Während dieser 'Timeout'-Zeit reagiert der Server sehr gut auf Pings (17ms) und auch ein ftp-Download einer sich nicht im Plattencache befindlichen großen Datei brummt hervorragend (300kB/s). Der Netzwerkanschluss und das Plattenarray sind also nicht überlastet. Die CPU-Auslastung liegt während dieser Zeit bei wenigen Prozent.

Mit dem Provider habe ich schon so ziemlich alle Optimierungen durch. Wir haben die Slow-Queries aufgezeichnet und da ist keines dabei, das irgendwie auffällig lange laufen würde. (mal abgesehen von denen, die gerade aktiv sind, wenn der Server 'anhält'). Mein Provider (mit guter Reputation in der Branche) ist nun wohl mit seinem Latein am Ende. Ach ja - außer dem Wechsel der Hardware läuft das Forum seit Jahren unverändert.

Woran kann es denn noch liegen? Wir haben weitere Dinge versucht, über die ich jetzt noch nicht reden möchte, um Euch nicht auf falsche Fährten zu locken. Alles hat bislang nicht geholfen.

Gruß
Horst
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: Server hängt sich regelmäßig auf

Beitrag von Mahony »

Hallo

Was sagen denn die Logs? Eventuell blockt auch die Firewall? Habt ihr vielleicht so etwas wie mod_evasive installiert?

Naja, ohne Einsicht in die LOGs, kann ich da nur raten woran es liegt.



Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Benutzeravatar
Dr. House
Mitglied
Beiträge: 27
Registriert: 08.02.2008 22:40

Re: Server hängt sich regelmäßig auf

Beitrag von Dr. House »

Hallo,

tritt dieses Problem regelmäßig oder nach einem Muster auf ? Ist während des Hängens des Apaches der Zugriff auf andere Dienste möglich, z.b. SSH/FTP (neue Verbindungen, nicht bestehende) oder reagieren die auch verzögert ?

Falls du root-Zugriff auf die Kiste hast, würde ich folgende Sachen durchsehen:

dmesg auf Systemmeldungen vom raid-controller
apache.log auf den letzten erfolgreichen Zugriff (welche Datei?)
error.log des Apaches auf ungewöhnliches

Ergibt sich da nichts interessantes, dann einfach nebenbei eine SSH-Shell offen lassen und top/htop laufen lassen. Wenn bei einer solchen Störung der Apache dann sämtliche CPU-Ressourcen konsumiert kommt man der Fehlerquelle schon wieder näher (ich weiß nicht ob der Provider bei solch einem Ausfall zeitnah genug reagieren kann, es hilft seltenst nachzuschauen, wenns schon wieder vorbei ist).
Der nächste Schritt wäre es, ebenfalls mit einer offenen SSH-Shell iostat laufen zu lassen, dort kann man sehen, wie sich das RAID bzw. die Festplatten allgemein von der Auslastung verhalten. Ein wichtiger Parameter wäre iowait, wenn dieser bei solch einem Ausfall stark ansteigt ist das in Indiz für ein Problem mit dem RAID.

Ich habe mir deine Seite gerade angeschaut, ich sehe da keinerlei Grund warum diese nicht auf einem Server der nicht einmal halb so performant ist wie der jetzige nicht gescheit laufen sollte. Für einen sauber konfigurierten Server ist die von dir angegebene Last eigentlich überhaupt kein Problem, wie du oben selbst bemerkt hast - er langweilt sich :D

Eine phpinfo(); wäre auch recht nützlich, wenn du diese nicht öffenlicht posten möchtest kannst du sie mir gerne per PN schicken.

Vermutlich hast du es schon oft genug gehört, aber eine Aktualisierung des Forums wäre dringendst angeraten.
horst98
Mitglied
Beiträge: 13
Registriert: 31.03.2004 15:41

Re: Server hängt sich regelmäßig auf

Beitrag von horst98 »

Vielen Dank für die Vorschläge!

@Mahony
Ich muss zugeben, dass ich von ziemlich viel in der EDV ziemlich wenig Ahnung habe. In die Details muss ich mich immer erst hineinlesen. Das mit den Logs ist natürlich wichtig. Hätte ich selbst drauf kommen müssen. Allerdings lief dieser Server seit 2005 ohne irgendwelche Mucken, so dass ich mich bislang um solche Dinge nicht habe kümmern müssen. Nächstes also Logs - ist klar.

@Dr. House
>tritt dieses Problem regelmäßig oder nach einem Muster auf
Leider nicht regelmäßig. Ich meine, es könnte mit erhöhter Forumslast zu tun haben. Aber dann bleibt der Server doch wieder nachts stehen, wenn die Zugriffslogs nur wenig Last zeigen.

> Ist während des Hängens des Apaches der Zugriff auf andere Dienste möglich, z.b. SSH/FTP (neue Verbindungen, nicht bestehende) oder reagieren die auch verzögert ?
Eine FTP-Session habe ich ohne Probleme in Null-komma-nix während des Ausfalls aufgebaut.

>top/htop, iostat, iowait
Danke für diese Hinweise. Ich kümmere mich darum. Die Unix-Zeit ist bei mir aber schon 15 Jahre vorüber. Da muss ich mich erst wieder dran gewöhnen.

>angegebene Last eigentlich überhaupt kein Problem, wie du oben selbst bemerkt hast - er langweilt sich
Na, so ganz ohne ist der Betrieb des Servers nicht. Wir haben immerhin bis zu 1,2 TB Traffic pro Monat und phpMyAdmin zeigt aktuell im Durchschnitt 200 Abfragen pro Sekunde über die vergangenen 17 Stunden. Spitzenwerte von 400 Abfragen/s habe ich auch schon gesehen. Ist das viel oder wenig? Mir erscheint das als relativ viel.

>aber eine Aktualisierung des Forums wäre dringendst angeraten.
Ja, ich sage es mir selbst immer schon. Mein Forum wurde vor 4 Jahren kurz nach der Einführung einmal gehacked und seitdem warte ich lieber etwas länger, bis ich auf eine neue Version wechsele. V3 erscheint mir mittlerweile doch recht stabil. Man hört nix großes über Hacks. Die Umstellung ist schon nach der Wintersaison für den kommenden Sommer geplant. Doch wir haben ein paar Mods zu portieren und dafür brauchen wir mehr Ruhe, als die hecktische Winterzeit.

Gruß und Vielen Dank
Horst
horst98
Mitglied
Beiträge: 13
Registriert: 31.03.2004 15:41

Re: Server hängt sich regelmäßig auf

Beitrag von horst98 »

Jetzt will ich auch noch mal rauslassen, was ich in der Zwischenzeit überlegt und probiert habe.

Dass der Apache das Problem sein könnte hat mich dazu veranlasst, die gzip-Funktion des Forums zu aktivieren. Auch wenn es die Last auf den Datenbankserver nicht reduziert, so sollte es die Last auf den Apache verringern. Zwar muss der html-Stream durch die CPU komprimiert werden, aber die CPU hat ja noch weniger zu tun, als der apache mit seinem Speicher oder die Platten. Vielleicht bringt es was.

An die Laufzeit-Informationen komme ich noch nicht richtig ran, da mir meine phpMyAdmin 2.11.9.6 Installation nur den MySQL 5-Server des Shops anzeigt. Da muss ich einmal nachsehen, wie ich an die Laufzeitinfos von MySQL 4 komme.

Prophylaktisch habe ich aber meinen Provider einmal einen Query Cache für das Forum einrichten lassen. Das könnte tatsächlich die Lösung des Problems bedeuten. Quick und Dirty sozusagen. Einfach die Optimierung des Forums sein lassen. Der Cache soll sich darum kümmern. Und daher könnte auch das plötzliche Auftreten dieses Fehlers auf dem neuen Server stammen. Beim alten hatten wir wohl den Cache aktiviert gehabt und bei der Portierung auf den neuen hat man das in der MySQL 4 Installation nicht nachgetragen.

Wie groß würdet Ihr denn den Cache anlegen? Ich habe mir die Literatur einmal angesehen und ein Beispiel aus der Zeit der 500 MHz Maschinen gefunden. Da waren die ganz erpicht darauf, den Cache nicht größer als ein paar Megabytes zu machen. Ansonsten würde die Verwaltung des Caches mehr Zeit und Ressourcen verbrauchen, als der Cache einsparen könnte. Ist das mit den neuen Maschinen immer noch so?

Gefühlt hat sich das Forum seitdem massiv beschleunigt. Auch hängen geblieben ist der Rechner nicht mehr. Aber das ist erst ein paar Stunden her.

Gruß
Horst
Benutzeravatar
Dr. House
Mitglied
Beiträge: 27
Registriert: 08.02.2008 22:40

Re: Server hängt sich regelmäßig auf

Beitrag von Dr. House »

Hallo,

ich habe mir deine beiden Antworten angeschaut. Wichtig ist hier vor allem, dass die anderen Dienste während der Störung offensichtlich ohne Verzögerung reagieren, was ein Lastproblem bzw. Flaschenhals am RAID zu 90% ausschließt. Ich denke, es wäre am besten sich auf den Apachen zu konzentrieren. 1,2 TB Traffic sind dann doch eine Menge Holz, wobei natürlich der größte Teil vom Shop kommen müsste. Das entspräche linear einer Last von 4 MBit / Sekunde, 100 MBit stehen ja zur Verfügung. Ich kann mir durchaus vorstellen, dass das zu Zeiten von Spitzenlast zu einem Problem werden kann, allerdings nicht, dass der Server deswegen nicht mehr reagiert. Da wird die Ursache auch nicht zu finden sein.
Möglicherweise wird der Apache durch eine zu hohe Anzahl an Zugriffen lahmgelegt. Da gäbe es dann zwei Punkte, die abzuklären wären. Zum einen die Konfiguration an sich:

apache mit mpm_worker oder prefork ? PHP angebunden als Modul, CGI oder fastCGI ?

Der andere Punkt wäre die Konfiguration an sich, dort kann festgelegt werden, wieviele Verbindungen maximal zum Server aufgebaut werden können. Wenn dieses Limit erreicht wird, geht nichts mehr, bis wieder Verbindungen frei werden. Ein wenig Lektüre dazu findet sich hier. Es gäbe da noch andere Parameter, aber dazu müsst ich erstmal wissen, ob prefork oder worker ;)

Anhand der unregelmäßigen Zeiten kann man einen amoklaufenden Cronjob ausschließen. Ich tendiere momentan zu einer Überlast des Apache Servers, der sein Verbindungslimit erreicht. Dies kann neben vielen Usern (was in der Nacht eigentlich nicht passieren sollte) auch von Suchmaschinen verursacht werden, z.B. der google oder der msn-bot. Gerade letzterer geht ab und zu nicht gerade sanft vor. Um das sagen zu können, wäre aber eine Auswertung der access.log und der error.log von nöten, kurz nach einem solchen Ausfall.

Bezüglich eines Caches:
In deinem Fall könnte ich mir den Einsatz von eaccelerator gut vorstellen. Dieser speichert die kompilierten PHP-Dateien im shared memory zwischen und bringt einen enormen Geschwindigkeitsvorteil (und damit auch Lastvorteil, weil die Skriptdatei nicht bei jeden Aufruf neu kompiliert werden muss) bei dynamischen Seiten, und sogar einen kleinen bei statischen. 64-128 MB Cache dürften ausreichen, wenn diese ausgereizt werden, wird in das temporäre Verzeichnis auf der Festplatte ausgelagert. Kann man also gegebenfalls auch weiter erhöhen. Vor allem bei dem vorhandenen RAM sollten diese 128 MB keine Schmerzen machen ;)

Ein MySQL-Query-Cache ist auch praktisch, bringt mich aber zu einer Frage: Wieso arbeitet ihr noch mit MySQL4 für das Forum ? Mit MySQL5 sollte es eigentlich keine Probleme geben, und dort gibt es gerade bezüglich Caching einige Verbesserungen gegenüber der Vorgängerversion. Nachdem allerdings keine Slow Querys auftreten, sehe ich eigentlich nicht sehr viel Sinn in der Einrichtung eines Query Caches. Es sei denn natürlich, dass MySQL auch ziemlich belastet wird, allerdings würde bei einer MySQL überlast beim Aufruf des Forums eine entsprechende Fehlermeldung angezeigt werden anstatt gar nichts (bzw. das die Seite lange lädt).

Chris
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“