
Как получить сведения о процессе, который занимает оперативную память. Отвершинакоманда Я обнаружил, что Mysql использует слишком много оперативной памяти. Как узнать, почему Mysql использует слишком много оперативной памяти, что отличается от обычного поведения?
Есть ли какие-либо команды для получения более подробной информации о процессе, кроме "пс"
решение1
Возможно, вам захочется запустить SHOW PROCESSLIST
MySQL, чтобы получить информацию о том, какие запросы выполняются в данный момент.
решение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 для каждого запроса, перечисленного в файле, чтобы получить представление о том, что происходит при выполнении этого запроса. С этими знаниями вы можете оптимизировать запрос для лучшей производительности.