Mysql
 sql >> Datenbank >  >> RDS >> Mysql

MySQL hohe CPU-Auslastung

Zuerst würde ich sagen, dass Sie wahrscheinlich dauerhafte Verbindungen deaktivieren möchten, da sie fast immer mehr schaden als nützen.

Zweitens würde ich sagen, dass Sie Ihre MySQL-Benutzer überprüfen möchten, nur um sicherzustellen, dass niemand von einem Remote-Server aus eine Verbindung herstellen kann. Dies ist auch ein wichtiger Sicherheitsaspekt, den es zu überprüfen gilt.

Drittens würde ich sagen, dass Sie den einschalten möchten Langsame MySQL-Abfrage Protokollieren Sie, um Abfragen im Auge zu behalten, die lange dauern, und verwenden Sie dies, um sicherzustellen, dass keine Abfragen zu lange Schlüsseltabellen blockieren.

Einige andere Dinge, die Sie überprüfen können, wären die Ausführung der folgenden Abfrage, während die CPU-Last hoch ist:

SHOW PROCESSLIST;

Dies zeigt Ihnen alle Abfragen, die derzeit ausgeführt werden oder sich in der Warteschlange befinden, was die Abfrage ist und was sie tut (dieser Befehl kürzt die Abfrage, wenn sie zu lang ist, Sie können SHOW FULL PROCESSLIST verwenden, um den vollständigen Abfragetext anzuzeigen). .

Sie sollten auch Dinge wie Ihre Puffergrößen im Auge behalten, Tabellen-Cache , Cache abfragen und innodb_buffer_pool_size (wenn Sie Innodb-Tabellen verwenden), da all diese Speicherzuweisungen einen Einfluss auf die Abfrageleistung haben können, was dazu führen kann, dass MySQL CPU verbraucht.

Sie werden wahrscheinlich auch die folgenden Informationen lesen wollen, da sie einige gute Informationen enthalten.

Es ist auch eine sehr gute Idee, einen Profiler zu verwenden. Etwas, das Sie aktivieren können, wenn Sie möchten, zeigt Ihnen, welche Abfragen Ihre Anwendung ausführt, ob es doppelte Abfragen gibt, wie lange sie dauern usw. usw. Ein Beispiel für so etwas ist eines, an dem ich gearbeitet habe PHP-Profiler aber es gibt viele da draußen. Wenn Sie eine Software wie Drupal, Joomla oder Wordpress verwenden, sollten Sie sich in der Community umhören, da es wahrscheinlich Module gibt, die es Ihnen ermöglichen, diese Informationen zu erhalten, ohne etwas manuell integrieren zu müssen.