• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

MySQL hängt mit 99% CPU bei abfrage

jochen123

Newbie
Hallo,

ich habe hier ein Problem mit MySQL wo ich nicht weiter weis.

Erstmal zu den Systemen.

DB-Server:
Virtueller Server mit 1x CPU + 2GB Ram
SLES 10.1
mysql Ver 14.12 Distrib 5.0.26, for suse-linux (i686) using readline 5.1
my.cnf = my-huge.cnf

Web-Server:
Virtueller Server mit 1x CPU + 2GB Ram
SLES 10.1
Apache 2.2.3 + Typo3


Jedesmal wenn auf dem Webserver eine Suche im Typo3 abgesetzt wird die die DB abfragt hängt der mysql auf dem DB-Server bei 99% cpu und das für gut 5-10 Minuten. Im mytop oder phpmyadmin-> prozesse sieht man immer 2 querys die gut 700 sekunden offen sind.

Ich weis nicht mehr wo ich noch nach dem Problem suchen kann und wäre über Tipps sehr erfreut.

Gruß Jochen
 

panamajo

Guru
Kann alle möglichen Gründe haben. Falsche oder fehlende Indizes in der DB, schlechter SQL Code, ...

Typo3 ist nicht gerade als resourcenschonend bekannt (zumindest kommen seit ~3Jahren laufend neue Versionen raus von denen jede neue die dbzgl. Probleme der vorigen ausbügeln soll :mrgreen:)

Slow Query Log aktivieren und die dort geloggten Problemfälle mit SQL EXPLAIN untersuchen wäre ein Ansatz...
 
OP
J

jochen123

Newbie
Das Typo3 viel ressourcen frist ist doch erstmal egal oder? Weil das ja auf nem eigenen Server liegt.

Kann man den rausfinden ob man falsche oder fehlende Indizes hat? gibt es da einen Befehl oder ein Tool für?

Und wie schalte ich slow query log ein?

Schon mal danke für deine Hilfe
 

Leviathan

Hacker
Als Startoption mit geben.
--log-slow-queries=/var/log/mysql --long-query-time=1

Da ich wenig Kenntnis in Sachen Mysql habe hat mir PHP MyAdmin gut helfen koennen. Vlt. wirfst du da mal nen Blick drauf und kannst damit einige Configeinstellungen verbessern.

Gruß Dominik
 
OP
J

jochen123

Newbie
das mit den slow querys werde ich mir nun angucken.

Gibt es denn eine Möglichkeit heraus zu finden wo indizes fehlen oder fehlerhaft sind?
 

Leviathan

Hacker
Im PhpMyAdmin siehst dus recht übersichtlich.

In der Konsole mit mysqlshow -k

oder "show index from "

Wo die letztendlich fehlen kannst du an den Slow Query Logfiles erkennen.
Vlt. gibts auch ne bessere Methode (kenn keine)

Gruß Dominik
 
OP
J

jochen123

Newbie
dank dir dann werde ich mich damit jetzt erstmal auseinander setzen.

Wenn sonst noch wer nen guten Tipp hat immer her damit :)
 

panamajo

Guru
jochen123 schrieb:
Das Typo3 viel ressourcen frist ist doch erstmal egal oder? Weil das ja auf nem eigenen Server liegt.
Wenn die SQL Abfragen / DB Design ausreichend schlecht sind kann man auch den DB Server gleich mit runterziehen...

jochen123 schrieb:
Gibt es denn eine Möglichkeit heraus zu finden wo indizes fehlen oder fehlerhaft sind?
Hab ich doch geschrieben: EXPLAIN
http://dev.mysql.com/doc/refman/5.0/en/explain.html
 
OP
J

jochen123

Newbie
Hm das glaub ich gerne, blos kann ich schlecht beurteilen ob der sql code bzw. das db design schlecht oder gut sind. Bin ja kein Programmierer.

Mit dem slow query logging sehe ich die Abfragen, weis aber nicht wirklich was mir das jetzt helfen soll.

# Time: 071113 20:53:43
# User@Host: regroot[regroot] @ typo3.reg [192.168.0.29]
# Query_time: 51 Lock_time: 0 Rows_sent: 150 Rows_examined: 1421705

Sorry aber mysql ist echt nicht mein Gebiet.
 
Oben