MySQL dreht durch - 100% CPU Auslastung

MySQL dreht durch - 100% CPU Auslastung

am 16.04.2008 14:58:37 von Christian Helmbold

Hallo,

ich habe auf einem Linux-Server MySQL 5.0.45 für ein Forum laufen und
habe 100% CPU-Auslastung durch den Prozess mysqld_safe. In dem Forum ist
nicht so viel los, dass der Besucheransturm diese Auslastung verursachen
sollte - und schon gar nicht konstant 100%!

Nach einem Neustart des Prozesses ist die Auslastung wieder nahe am
Nullpunkt, aber Neustarts sind ja nun auch nicht die Lösung, deshalb
suche ich nach Anhaltspunkten zur Erklärung und Behebung dieses Verhaltens.

Optimiert habe ich an den Einstellungen noch nichts weiter, es sind also
die Standardeinstellungen von MySQL bei Ubuntu bzw. Debian. Ich denke
auch, dass dieses Verhalten bei der geringen Auslastung auch ohne
Optimierung nicht auftreten sollte.

Woran könnte das liegen?

Gruß
Christian

Re: MySQL dreht durch - 100% CPU Auslastung

am 16.04.2008 15:28:07 von Martin J

Christian Helmbold wrote:

[Forum dreht hohl... mysql unschuldig]

> Woran könnte das liegen?

Leider ist zumindest meine Glaskugel schon seit Tagen trüb.
Ziemlich sicher ist jedoch, daß mysql an der Sache gänzlich=20
unschuldig ist... es gibt kaum grottigeren Code als das
Gestammel von Forenautoren (welches eigentlich?).
Insbesondere das Thema "sql-Injection" hat sich bei
Forenprogrammierern noch nicht wirklich rumgesprochen,
daher könnte die beobachteten Erscheinungen zwanglos
das Werkeln eines unternehmungslustigen Skriptkids beim
Ausprobieren von Passworten u.ä. sein.

Auf jeden Fall sind Kommandos wie "SHOW FULL PROCESSLIST"
und das slow_log Dein Freund. Ob Dir das was nutzt, ist natürlich
eine andere Frage. Ganz nützlich könnte auch die Überprüfung
des access- und errorlogs Deines Webservers sein, Einbruchsversuche
sind da üblicherweise erkennbar.

Martin

Re: MySQL dreht durch - 100% CPU Auslastung

am 16.04.2008 15:53:26 von Axel Schwenke

Christian Helmbold wrote:
>
> ich habe auf einem Linux-Server MySQL 5.0.45 für ein Forum laufen und
> habe 100% CPU-Auslastung durch den Prozess mysqld_safe.

> Woran könnte das liegen?

Wenn es wirklich mysqld_safe ist, dann wäre das merkwürdig. Das ist
nämlich nur ein Shell-Skript das den MySQL-Server (mysqld) mit den
nötigen Optionen startet und gegebenenfalls auch neu startet.

Das sollte normalerweise gar nichts tun und 0% CPU brauchen.


XL

Re: MySQL dreht durch - 100% CPU Auslastung

am 16.04.2008 17:58:14 von Christian Helmbold

> Das sollte normalerweise gar nichts tun und 0% CPU brauchen.

Danke für den Hinweis. Das hat mich dazu gebracht noch mal nach solchen
Fällen mit mysqld_safe zu suchen und anscheinend ist das Problem schon
häufiger aufgetreten, ohne dass es eine Erklärung dafür gäbe.
http://forum.slicehost.com/comments.php?DiscussionID=1000

Gruß
Christian

Re: MySQL dreht durch - 100% CPU Auslastung

am 16.04.2008 18:03:18 von Christian Helmbold

Martin J schrieb:

> Ziemlich sicher ist jedoch, daß mysql an der Sache gänzlich
> unschuldig ist...

So sicher bin ich mir da nicht.

> es gibt kaum grottigeren Code als das
> Gestammel von Forenautoren (welches eigentlich?).

Ja, da gibt es wirklich viel Mist. In meinem Fall ist es Phorum.

> Insbesondere das Thema "sql-Injection" hat sich bei
> Forenprogrammierern noch nicht wirklich rumgesprochen,
> daher könnte die beobachteten Erscheinungen zwanglos
> das Werkeln eines unternehmungslustigen Skriptkids beim
> Ausprobieren von Passworten u.ä. sein.

Es deutet nichts auf SQL-Injektion hin. Die hätte vermutlich auch eher
mysqld als mysqld_safe betroffen.

> Auf jeden Fall sind Kommandos wie "SHOW FULL PROCESSLIST"
> und das slow_log Dein Freund.

Langsame Abfragen gab es auch nicht.

Danke für deine Hinweise, mittlerweile habe ich noch mal etwas nach dem
Problem mit 100% CPU Auslastung durch mysqld_safe gesucht und immerhin
herausgefunden, dass das Problem schon öfter aufgetreten ist. Nur einen
Grund oder gar eine Lösung habe ich nicht gefunden ...

Gruß
Christian