Найти самые загруженные базы данных и таблицы на сервере MySQL
У меня есть занятый сервер MyMQL с довольно большим количеством баз данных. Я пытаюсь найти лучший способ найти самые загруженные базы данных (и таблицы) на сервере, чтобы я мог перенести их на отдельную машину. Какой лучший способ пойти по этому поводу?
4 ответа
Вы должны активировать медленный журнал запросов и посмотреть, какие запросы занимают больше всего времени. Это может быть достигнуто с помощью
log_slow_queries = /var/log/foo.log
long_query_time = 5
Настройте long_query_time в соответствии со своими потребностями.
Второй вариант - использовать mytop и видеть запросы, когда они пролетают. Но я рекомендую идти по журналу медленных запросов по маршруту. Если вам нужны метрики запросов / секунд, вы должны включить двоичный файл журнала на некоторое время (скажем, день), а затем запустить что-то вроде http://hackmysql.com/mysqlsla.
Используйте набор инструментов Maatkit. Конкретно mk-query-digest. Создайте журнал всех запросов, используя общий журнал или tcpdump. mk-query-digest создаст отчет о наиболее частых запросах. Из этого отчета вы можете увидеть, какая база данных / таблицы наиболее часто используются.
Захватить пакеты запроса с
tcpdump -i eth1 port 3306 -s 65535 -x -n -q -tttt > dump.txt
Анализировать с
mk-query-digest --type=tcpdump dump.txt --order-by=Query_time:cnt --limit=200 > query_report.txt
Если у вас есть дополнительные деньги, используйте MySQL Enterprise Monitor
для оценки всех видов производительности и статистики запросов. Я думаю, что можно как-то получить ознакомительную версию MEM.
Если у вас нет лишних денег, MySQL Proxy
может перехватывать запросы и выполнять все, что вы хотите, чтобы вы могли таким образом собирать статистику.
Медленный журнал запросов Питер Мейер сказал вам также один из способов.
Я бы предложил так называемую функцию user_statistics, которую изначально разработал Google. Он доступен в Percona Server и MariaDB, и аналогичная функция есть в PERFORMANCE_SCHEMA в следующем выпуске MySQL 5.6. Все они позволяют довольно просто определить, какие таблицы, индексы и т. Д. Используются.
Если это не вариант, я бы выбрал pt-query-digest, как это предлагает sreimer.