Мониторинг загрузки MySQL
Для мониторинга загрузки сервера MySQL есть такая хорошая утилита – mytop.
Mytop – это открытый инструмент командной строки для мониторинга производительности MySQL, разработанный по примеру инструмента мониторинга системы Linux под названием top. Mytop подключается к MySQL и периодически запускает команды show processlist и show global status, а затем резюмирует информацию в удобном формате. При помощи Mytop можно в режиме реального времени отслеживать потоки, запросы и аптайм MySQL, узнать, какой пользователь отправляет запросы к той или иной базе данных, определить медленные запросы и многое другое. Вся эта информация может быть использована для оптимизации производительности сервера MySQL.
Установка для разных систем:
Debian:
# apt-get install mytop
Fedora:
# yum install mytop
FreeBSD:
#pkg install mytop
Подключаемся к нашему MySQL:
# mysql -u root -p Enter password:
Желательно для каждой базы или для разных программ создавать разные учетные записи. Поэтому создадим и опишем права на нужные базы пользователю mytopuser:
mysql> create user 'mytopuser'@'localhost' identified by 'password'; mysql> grant all on *.* to ‘mytopuser’@’localhost’ identified by ‘password’;
Создадим файл настроек в домашнем каталоге ~/.mytop и в него вносим конфигурацию подключения:
# mcedit .mytop user=mytopuser pass=dgbple host=localhost db=asterisk port=3306 color=1 delay=3 idle=0
где user и pass – логин и пароль, что мы создавали.
host, port – адрес и порт MySQL сервера
db – база, к которой подлючаемся
delay – чтобы дисплей mytop обновлялся каждые 3 секунды
idle – определяет, нужно ли выводить в mytop ожидающие потоки. По умолчанию такие потоки учитываются. Опуская ожидающие потоки, mytop меняет порядок сортировки по умолчанию, выводя длинные запросы в верхней части списка.
Сменим права на доступ к этому файлу:
# chmod 700 .mytop
Запускаем утилиту:
# mytop
Можно вывести данные по определенной базе, например:
# mytop -u mytopuser -p password -d goip
В первой строке: имя хоста и версия запущенного сервера MySQL. Верхний правый угол – uptime сервера (время непрерывной работы) дней+часов+минут+секунд.
Во второй строке: общее количество обработанных запросов к базе (Queries:), среднее количество запросов в секунду (qps:), и кол-во медленных запросов (Slow:).
В третьей строке показывает информацию о процессах: всего, активных, кешированных.
В четвертой строке: сведения об эффективности буфера ключей – как часто MySQL находит ключи в буфере, не обращаясь к диску, среднее число байтов, посланных и полученных сервером, и число байтов, пересылаемых в данный момент.
Вторая часть экрана показывает все активные потоки (в том числе тот, который использует MyTOP). Здесь выводятся в табличной форме имя пользователя, базы данных и узла, а также текущий запрос и состояние.
В стандартном выводе mytop запросы сокращены. Чтобы просмотреть запись полностью, нажмите F. Программа спросит:
Full query for which thread id:
Введите id потока, чтобы просмотреть необходимый запрос.
Чтобы получить объяснение запроса, нажмите Е, и тогда программа предоставит данные о запущенном запросе, которые помогут выяснить, оптимизируется ли запрос. EXPLAIN – один из самых производительных инструментов для понимания и оптимизации запросов MySQL.
Чтобы закрыть этот режим, нажмите любую клавишу; чтобы вернуть стандартный вывод, нажмите t.
Еще один полезный вид mytop доступен при нажатии клавиши С. Он показывает запущенные команды.
Столбец Command показывает тип запущенной команды или запроса. Столбец Total указывает общее количество команд такого типа с момента запуска сервера, а Pct показывает это число в процентном соотношении. Столбец Last показывает количество команд такого типа с момента последнего обновления mytop. В целом эти данные дают представление о работе сервера MySQL в краткосрочной и долгосрочной перспективе.
Заключение
Этот инструмент позволяет вовремя обнаружить и оптимизировать сложные запросы SQL, тем самым увеличивая общую производительность сервера.






Comments
So empty here ... leave a comment!