So lösen Sie Speicherprobleme in Linux

So lösen Sie Speicherprobleme in Linux

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 PROCESSLISTinnerhalb von MySQL durchführen, um Informationen darüber zu erhalten, welche Abfragen aktuell ausgeführt werden.

MySQL-Dokumentation für SHOW PROCESSLIST

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.

verwandte Informationen