
So erhalten Sie Details zu einem Prozess, der RAM beansprucht. VonSpitzeBefehl: Ich habe festgestellt, dass MySQL zu viel RAM verbraucht. Wie kann ich herausfinden, warum MySQL weit vom normalen Verhalten entfernt zu viel RAM verbraucht?
Gibt es Befehle, um weitere Details des Prozesses zu erhalten, außer "ps"
Antwort1
Möglicherweise möchten Sie die Ausführung SHOW PROCESSLIST
innerhalb von MySQL durchführen, um Informationen darüber zu erhalten, welche Abfragen aktuell ausgeführt werden.
Antwort2
mytop - Ein Befehlszeilenprogramm zur Überwachung der MySQL-Serverleistung in Echtzeit. Damit mytop ordnungsgemäß funktioniert, benötigen Sie Folgendes:
- Perl 5.005 oder neuer
- Getopt::Lang
- DBI und DBD::mysql
- Term::ReadKey von CPAN
Und das Obige habe ich für Linux-Distributionen angegeben.
Antwort3
Es hört sich so an, als ob MySQL während der Verarbeitung einer nicht optimierten Abfrage große temporäre Tabellen im Arbeitsspeicher erstellen muss.
Wenn es nicht aktiviert ist, aktivieren Sie das Protokoll für langsame Abfragen, indem Sie Folgendes zu Ihrer my.cnf-Datei hinzufügen:
log_slow_queries = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes
Sehen Sie sich dann die Datei /var/log/mysql/mysql-slow.log an. Sie sollten EXPLAIN für jede in der Datei aufgeführte Abfrage ausführen, um eine Vorstellung davon zu bekommen, was passiert, wenn diese Abfrage ausgeführt wird. Mit diesem Wissen können Sie die Abfrage für eine bessere Leistung optimieren.