У меня загруженный сервер MyMQL с довольно большим количеством баз данных. Я пытаюсь найти лучший способ найти самые загруженные базы данных (и таблицы) на сервере, чтобы я мог перенести их на отдельный компьютер. Как лучше всего это сделать?
Используйте набор инструментов Maatkit. В частности мк-запрос-дайджест. Создайте журнал всех запросов, используя общий журнал или 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
Вам следует активировать журнал медленных запросов и посмотреть, какие запросы занимают больше всего времени. Этого можно добиться, используя
log_slow_queries = /var/log/foo.log
long_query_time = 5
Настройте long_query_time на свои нужды.
Второй вариант - использовать mytop и наблюдать за пролетающими запросами. Но я рекомендую идти по маршруту медленных запросов журнала. Если вам нужны показатели запросов в секунду, вы должны включить двоичный файл журнала на некоторое время (скажем, на день), а затем запустить что-то вроде http://hackmysql.com/mysqlsla в теме.
Если у вас есть лишние деньги, используйте MySQL Enterprise Monitor
для оценки всех видов производительности и статистики запросов. Думаю, можно как-нибудь получить оценочную версию MEM.
Если у вас нет лишних денег, MySQL Proxy
может перехватывать запросы и выполнять все, что вы хотите, чтобы вы могли таким образом собирать статистику.
Журнал медленных запросов, который вам сообщил Питер Мейер, также является одним из способов.
Я бы предложил так называемую функцию user_statistics, изначально разработанную Google. Он доступен в Percona Server и MariaDB, и аналогичная функция есть в PERFORMANCE_SCHEMA в предстоящем выпуске MySQL 5.6. Все они позволяют довольно легко определить, какие таблицы, индексы и т. Д. Используются.
Если это не вариант, я бы выбрал pt-query-digest, как предлагает sreimer.