MySQL - Datenbank bleibt "hängen"

N

NightStalk3r

Jungspund
Hallo,

habe hier seit ein paar Tagen komische Probleme. Auf dem Root Server läuft ein WBB Board mit MYSQL Datenbank.
In unregelmässigen Abständen hängt sich der MySQL Server auf, CPU Auslastung geht auf 100%. Das Ganze dauert dann 1-5 Min und plötzlich läuft wieder alles normal.
Es ist nicht Abhängig davon wieviel Leute sich im Board befinden, mal passiert es bei einem, mal wenn 30 User im Board angemeldet sind, mal passiert es alle 5h, dann alles 12h.

Der MySQL Log sagt absolut garnichts, man sieht die Datenbankzugriffe, keine Fehler oder ähnliches. Bin langsam etwas ratlos.

Server:
Debian Lenny, Kernel 2.6.9-023
Apache2
MySQL Server 5.0.51a-24
PHP extensions mysql

Hat jemand eine Idee ?
 
Ja, es sind auch ein paar Einträge vorhanden, kurzer Auszug aus dem Log wie die Datenbank wieder hängen geblieben ist:
Code:
# Time: 090701  7:42:15
# Query_time: 3416  Lock_time: 0  Rows_sent: 5  Rows_examined: 82487491
use usr_web0_1;
(	SELECT		messageTable.postID AS messageID,
							'post' AS messageType
							
							
							
							, MATCH (messageTable.subject, messageTable.message) AGAINST ('Sind Alu Felgenringe im Gelände vieleicht doch nicht so gut  ?') + (5 / (1 + POW(LN(1 + (1246423518 - messageTable.time) / 2592000), 2))) + IF(thread.boardID=33,2,0) AS relevance
					FROM 		wbb1_1_post messageTable
							, wbb1_1_thread thread
					WHERE		MATCH (messageTable.subject, messageTable.message) AGAINST ('Sind Alu Felgenringe im Gelände vieleicht doch nicht so gut  ?' IN BOOLEAN MODE)
							 AND (messageTable.threadID <> 3937)
					GROUP BY	messageID) ORDER BY relevance DESC LIMIT 5;

# Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 10
SELECT		rankID
			FROM		wcf1_user_rank
			WHERE		groupID IN ((SELECT groupID FROM wcf1_user_rank WHERE rankID = 6)) 
					AND neededPoints <= 1235
					AND gender IN (0,1)
			ORDER BY	neededPoints DESC, gender DESC LIMIT 1;

# Query_time: 0  Lock_time: 0  Rows_sent: 1  Rows_examined: 37
SELECT 		session.boardID,
					user_option.userOption15, session.userID, session.username as guestname, session.ipAddress,
					session.userAgent, session.lastActivityTime, session.requestURI, session.sessionID,
					session.requestMethod, session.spiderID, groups.userOnlineMarking, user.username 
			FROM 		wcf1_session session
			LEFT JOIN 	wcf1_user user
			ON		(user.userID = session.userID)
			LEFT JOIN 	wcf1_user_option_value user_option
			ON		(user_option.userID = session.userID)
			LEFT JOIN 	wcf1_group groups
			ON		(groups.groupID = user.userOnlineGroupID)
			
			WHERE 		session.packageID = 48
					AND session.lastActivityTime > 1246423611
					AND session.spiderID = 0
					AND session.sessionID <> '69de363ab5c55c310a68a6562c849ae3e3f236af' AND session.userID <> 61
					 AND session.boardID <> 0  
			ORDER BY 	session.username;

# Query_time: 0  Lock_time: 0  Rows_sent: 0  Rows_examined: 34
SELECT 		
					user_option.userOption15, session.userID, session.username as guestname, session.ipAddress,
					session.userAgent, session.lastActivityTime, session.requestURI, session.sessionID,
					session.requestMethod, session.spiderID, groups.userOnlineMarking, user.username 
			FROM 		wcf1_session session
			LEFT JOIN 	wcf1_user user
			ON		(user.userID = session.userID)
			LEFT JOIN 	wcf1_user_option_value user_option
			ON		(user_option.userID = session.userID)
			LEFT JOIN 	wcf1_group groups
			ON		(groups.groupID = user.userOnlineGroupID)
			
			WHERE 		session.packageID = 48
					AND session.lastActivityTime > 1246422968
					AND session.spiderID = 0
					AND session.sessionID <> 'ea09af021e0658f01d90986a78098fd8606bf79b' AND session.userID <> 204
					 AND session.threadID = 3932  
			ORDER BY 	session.username;

Irgendwas besonderes kann ich da leider nicht erkennen.
 
Laufen uU. auch andere Prozesse und Daemons auf deinem Server? Es könnte sein, dass irgendein Prozess / Daemon in Konflikt mit deiner DB steht. Sowas Ähnliches hatte ich mal mit ner Oracle DB.
 
Mhh, da könnte eigentlich nur phpMyAdmin oder Confixx in Frage kommen.
Code:
# Query_time: 0  Lock_time: 0  Rows_sent: 0  Rows_examined: 0
UPDATE allgemein SET lastrun ='1246426113', confixxupdate = 1  WHERE server_id='9c28da5ebe5fed94e7e9b36c248a0abb';

Automatische Datensicherung oder ähnliches habe ich nicht drinnen.
Es laufen vom WBB noch ein paar automatische Cronjobs, aber nichts dergleichen wenn es hängen bleibt.
 
Schau doch mal mittels 'show processlist' welche Querys zu dem Zeitpunkt der Last ausgeführt werden.
 
Werde ich tun, danke !
Bin gerade wieder heimgekommen, bis jetzt läuft noch alles.
Ich werde es beobachten und dann posten.
 
Nur so als Randbemerkung:

Debian Lenny, Kernel 2.6.9-023

Für vServer (und genau danach siehts aus) gelten natürlich ein paar Besonderheiten, die man (nachdem hier mehr Informationen gepostet wurden) beachten muss.
 
Nicht bei allen VServer-Anbietern hat jede Maschine einen eigenen CPU-Kern oder eine eigene CPU zur Verfügung, wodurch natürlich die Leistung durch andere VMs eingeschränkt werden kann, die gerade laufen. Auch kann es zu längeren Wartezeiten bei Zugriffen auf die Festplatte kommen, wenn gerade eine oder mehrere VMs den HDD-Durchsatz dicht machen. Und je nach eingesetzter VM-Software kann es auch sein, dass du nicht den echten CPU-Verbrauch der VM siehst, sondern nur den, den alle VMs zusammen produzieren, wodurch die Möglichkeit besteht, dass es garnicht dein Prozess ist, der die CPU dicht macht.
 
Also, die Datenbankhänger sind verschwunden, alles gut ;)

Es ist übrigends ein Root Server auf Virtuzzo Basis.
Ram und CPU sind garantiert, es gibt bei dem Anbieter eine extra Kategorie für vServer.

Nach htop gibts auch die meiste Zeit max 1-5% CPu Last.
 

Ähnliche Themen

Problem mit Apache2 + MySQL Server

Apache 2 + PHP + MySQL + PhpMyAdmin = Totalschaden

Zurück
Oben