Internet, 12. März 2001: 30 Minuten Totalausfall
Liebe Mitglieder und sonstige Hostsharing-Nutzer,Auswirkung
Von etwa 19:57h bis 20:27h waren alle höheren Dienste, also HTTP, FTP, SMTP, POP3, SSH und Telnet nicht erreichbar. Niedere Dienste wie Traceroute und Ping gingen noch.
Ursache
Durch ungeschickte Prozess-Prioritäten häuften sich aus CGI Skripts Anfragen an die mySQL Datenbank, bis ein Load von 166 (letzt protokollierter Wert) erreicht war. Dadurch war der Server quasi nicht mehr Nutzbar.
Details
Der MySQL-Dämon lief auf niederer Priorität (Nice-Level) als der Apache http-Dämon. Dies ist die Voreinstellung des verwendeten Cobalt-Linux Basissystems (wenn auch die Cobalt-spezifischen Features nicht mehr genutzt werden). CGI-Skripte erben die Priorität vom httpd. Durch eine Häufung von Anfragen, konnte der mySLQ-Dämon die Anfragen nicht mehr so schnell abarbeiten, wie neue reinkamen. Vermutlich wurde dies durch vielfache Reload-Versuche von verständlicherweise ungeduldigen Nutzern auch verstärkt. Der Load stieg dadurch stetig an, bis der Server nicht mehr sinnvoll reagierte.
Maßnahmen
Zunächst wurde über die Hostadmins vom Houser (Datapipe ein Reset angefordert, um den Rechner überhaupt wieder bedienen zu können. Der Reboot erfolgte um ca. 20:25h, so dass der Server ab ca. 20:27 wieder mit allen Diensten verfügbar war. Dann wurde anhand der Logfiles das Szanario analysiert.
- Die Prioritäten von mySQLd und httpd müssen in Relation sinnvoll sein. (DONE)
- Der lokal laufende Server-Watch sollte am einem bestimmten Load (z.B. 10) einzelne Dämonen deaktivieren bis der Load wieder gesunken ist. (DEACTIVE)
- In kritisches CGI-Skript eine Load-Anfrage einbauen. (DONE)
Bei einem Load über 5 gibt es statt der Datenbankanfrage nur noch eine entsprechende Meldung aus.
Sorry für die Downtime von ca. 30 Minuten.
- Michael
Hostmaster Hostsharing eG i.Gr.

