Назад | Перейти на главную страницу

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

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

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

Похоже, 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 для каждого запроса, указанного в файле, чтобы получить представление о том, что происходит при выполнении этого запроса. Обладая этими знаниями, вы можете оптимизировать запрос для повышения производительности.

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

  • Perl 5.005 или новее
  • Getopt :: Long
  • DBI и DBD :: mysql
  • Term :: ReadKey из CPAN

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

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

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