earlgrey
New Member
Hallo,
hab da nochmal ein Problem, wo ich wahrscheinlich den Baum vor lauter Wald nicht sehe.
MySQL Server: 4.1.22
Linux Distribution: Debian woody minimal, mit PD-ADMIN Serverumgebung SE-0.083
Das Problem:
Ein Forum mit PHPKIT und einer widerspenstigen Datenbank. Ab und zu, unregelmässig, meistens aber Abends um diese Uhrzeit, hakt die Datenbank.
Ein Auszug der Process List:
Neustart der Datenbank.
Kurze Zeit später wieder:
Beim ersten mal warteten also 218 User auf eine Möglichkeit auf die Datenbank zuzugreifen, im zweiten Fall 146 User.
Warum hakt aber die erste Abfrage ? Es ist ein einfacher Beitrag, der dort abgefragt wurde. Was genau macht die Datenbank im Status "Sending data" ?
Wie kann ich herausfinden, was dort genau die Datenbank blockiert.
TOP zeigt für den mysqld ca. 99% Prozessorlast.
Log Files hab ich mir schonmal erstellen lassen, aber ehrlich: Das sind zuviel Daten um diese gezielt auszuwerten. Ich habe es jedenfalls nicht geschafft.
Das Forum hat um diese Uhrzeit weit über 200 User aktiv. Aktiv heißt hier wirklich: schreiben und lesen.
Hat jemand eine Idee, wo ich noch suchen kann um den Übeltäter wirklich zu finden und dann Gegenmaßnahmen zu ergreifen ?
Gruß
Chris
hab da nochmal ein Problem, wo ich wahrscheinlich den Baum vor lauter Wald nicht sehe.
MySQL Server: 4.1.22
Linux Distribution: Debian woody minimal, mit PD-ADMIN Serverumgebung SE-0.083
Das Problem:
Ein Forum mit PHPKIT und einer widerspenstigen Datenbank. Ab und zu, unregelmässig, meistens aber Abends um diese Uhrzeit, hakt die Datenbank.
Ein Auszug der Process List:
Code:
+--------+----------+-----------+------------------+---------+------+--------------+-----------------------------------------------------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+--------+----------+-----------+------------------+---------+------+--------------+-----------------------------------------------------------------------------------------------
| 900501 | hdbq | localhost | usrdb_hdbq_1 | Query | 287 | Sending data | SELECT forumthread_catid, forumthread_id FROM phpkit_forumthread WHERE (forumthread_id='32679'
| 900611 | hdbq | localhost | usrdb_hdbq_1 | Query | 213 | Sending data | SELECT forumthread_catid, forumthread_id FROM phpkit_forumthread WHERE (forumthread_id='32679'
| 900621 | hdbq | localhost | usrdb_hdbq_1 | Query | 160 | Locked | SELECT * FROM phpkit_forumthread WHERE forumthread_id='32678'
| 900622 | hdbq | localhost | usrdb_hdbq_1 | Query | 160 | Locked | SELECT p.forumpost_id,p.forumpost_autor,p.forumpost_autorid,p.forumpost_time, t.forumthread_id
| 900625 | hdbq | localhost | usrdb_hdbq_1 | Query | 160 | Locked | SELECT * FROM phpkit_forumthread WHERE forumthread_id='32659'
...
| 900838 | hdbq | localhost | usrdb_hdbq_1 | Query | 2 | Locked | SELECT * FROM phpkit_forumthread WHERE forumthread_id='32680' OR forumthread_id='32393' OR for
| 900839 | hdbq | localhost | usrdb_hdbq_1 | Query | 1 | Locked | SELECT * FROM phpkit_forumthread WHERE forumthread_id='32680' OR forumthread_id='32393' OR for
| 900840 | root | localhost | | Query | 0 | | show processlist
+--------+----------+-----------+------------------+---------+------+--------------+-----------------------------------------------------------------------------------------------
Neustart der Datenbank.
Kurze Zeit später wieder:
Code:
+------+----------+-----------+------------------+---------+------+--------------+-------------------------------------------------------------------------------------------------
| Id | User | Host | db | Command | Time | State | Info
+------+----------+-----------+------------------+---------+------+--------------+-------------------------------------------------------------------------------------------------
| 2528 | hdbq | localhost | usrdb_hdbq_1 | Query | 109 | Sending data | SELECT forumthread_catid, forumthread_id FROM phpkit_forumthread WHERE (forumthread_id='32235' O
| 2542 | hdbq | localhost | usrdb_hdbq_1 | Query | 106 | Locked | UPDATE phpkit_forumthread SET forumthread_viewcount=forumthread_viewcount+1,forumthread_replycou
| 2543 | hdbq | localhost | usrdb_hdbq_1 | Query | 105 | Locked | SELECT phpkit_forumpost.forumpost_threadid, phpkit_forumpost.forumpost_id FROM phpkit_forumpost
...
| 2685 | hdbq | localhost | usrdb_hdbq_1 | Query | 3 | Locked | SELECT COUNT(*) FROM phpkit_forumthread WHERE forumthread_catid='4'
| 2686 | hdbq | localhost | usrdb_hdbq_1 | Query | 2 | Locked | SELECT phpkit_forumpost.forumpost_threadid, phpkit_forumpost.forumpost_id FROM phpkit_forumpost
| 2687 | hdbq | localhost | usrdb_hdbq_1 | Sleep | 2 | |
| 2688 | hdbq | localhost | usrdb_hdbq_1 | Sleep | 1 | |
| 2689 | root | localhost | | Query | 0 | | show processlist
+------+----------+-----------+------------------+---------+------+--------------+-------------------------------------------------------------------------------------------------
Beim ersten mal warteten also 218 User auf eine Möglichkeit auf die Datenbank zuzugreifen, im zweiten Fall 146 User.
Warum hakt aber die erste Abfrage ? Es ist ein einfacher Beitrag, der dort abgefragt wurde. Was genau macht die Datenbank im Status "Sending data" ?
Wie kann ich herausfinden, was dort genau die Datenbank blockiert.
TOP zeigt für den mysqld ca. 99% Prozessorlast.
Log Files hab ich mir schonmal erstellen lassen, aber ehrlich: Das sind zuviel Daten um diese gezielt auszuwerten. Ich habe es jedenfalls nicht geschafft.
Das Forum hat um diese Uhrzeit weit über 200 User aktiv. Aktiv heißt hier wirklich: schreiben und lesen.
Hat jemand eine Idee, wo ich noch suchen kann um den Übeltäter wirklich zu finden und dann Gegenmaßnahmen zu ergreifen ?
Gruß
Chris