Как решить проблемы с памятью в Linux

Как решить проблемы с памятью в Linux

Как получить сведения о процессе, который занимает оперативную память. Отвершинакоманда Я обнаружил, что Mysql использует слишком много оперативной памяти. Как узнать, почему Mysql использует слишком много оперативной памяти, что отличается от обычного поведения?

Есть ли какие-либо команды для получения более подробной информации о процессе, кроме "пс"

решение1

Возможно, вам захочется запустить SHOW PROCESSLISTMySQL, чтобы получить информацию о том, какие запросы выполняются в данный момент.

Документация MySQL для SHOW PROCESSLIST

решение2

mytop - Утилита командной строки для мониторинга производительности MySQL Server в реальном времени. Для корректной работы mytop необходимо следующее:

  • Perl 5.005 или новее
  • Getopt::Длинный
  • DBI и DBD::mysql
  • Термин::ReadKey из CPAN

И вышесказанное я указал для дистрибутивов Linux.

решение3

Похоже, что MySQL вынужден создавать большие временные таблицы в памяти при обработке неоптимизированного запроса.

Если он не включен, включите журнал медленных запросов, добавив в файл my.cnf следующее:

log_slow_queries   = /var/log/mysql/mysql-slow.log
long_query_time    = 2
log-queries-not-using-indexes

Затем взгляните на файл /var/log/mysql/mysql-slow.log. Вам следует запустить EXPLAIN для каждого запроса, перечисленного в файле, чтобы получить представление о том, что происходит при выполнении этого запроса. С этими знаниями вы можете оптимизировать запрос для лучшей производительности.

Связанный контент