Что такое mytop?
Mytop – это инструмент командной строки с открытым исходным кодом, используемый для мониторинга запросов к MySQL/MariaDB. Он похож на инструмент трассировки системы Linux – top. Mytop подключается к SQL-серверу и периодически выполняет команды show processlist и show global status, вывод которых удобно отображать в окне терминала. Mytop показывает в реальном времени все выполняющиеся в данный момент SQL-запросы, которые можно быстро и удобно KILL или EXPLAIN, например, при желании посмотреть эффективность индексов. Кроме того, можно отслеживать общую нагрузку на сервер MySQL и количество запросов в секунду (QPS). Если mytop запущен на подчиненном сервере, вы можете увидеть, правильно ли синхронизируется подчиненный сервер или на сколько секунд отстает от ведущего.
Настройка Mytop
Для использования Mytop необходим SSH-доступ к серверу. Руководство по подключению через протокол SSH.
Mytop на сервере Zone способен считывать учетные данные SQL-соединения из конфигурационных файлов WordPress, Magento и Laravel.
Все, что вам нужно сделать, это войти в систему через SSH, перейти в каталог приложений: cd domains/www.domeen.ee/htdocs/
и запустить mytop
.
Чтобы задать отдельное имя пользователя и пароль для SQL-соединения, после входа в SSH откройте файл ~/.my.cnf в текстовом редакторе по своему усмотрению.
Содержимое файла выглядит следующим образом:
[client] host = d150.mysql.zonevs.eu user = d150_lisa password = 0J%yFiuP7KW^6O9Y
user должен быть именем пользователя SQL, а password – паролем SQL. При необходимости их можно найти в файле настроек веб-приложения.
Также можно создать соединение, задав настройки непосредственно в качестве параметров командной строки.
Например:
:~> mytop -u d150_lisa -p 0J%yFiuP7KW^6O9Y -h d150.mysql.zonevs.eu
После установления соединения появится следующee:
Цвета строк
Для того, чтобы удобно различать запросы на чтение и запись, все запросы SELECT имеют зеленый цвет, а запросы UPDATE/DELETE/ALTER – красный. Все остальные запросы – желтые. Если запрос выполняется более 10 секунд, цвет изменится на светло-зеленый или светло-красный соответственно. Чтобы увидеть цвета, клиент SSH должен поддерживать цвета ANSI. Чтобы включить или выключить цвета, нажмите клавишу ‘C’.
Столбцы
- Id – это идентификатор соединения. Каждое новое соединение получает новый идентификатор. Этот номер используется для получения дополнительной информации о запросе.
- User – имя пользователя, с которым устанавливается соединение с SQL-сервером.
- Host/IP – имя хоста или IP клиента, с которого устанавливается соединение. Обычно это имя хоста веб-сервера или “localhost”.
- DB – имя базы данных, в которой выполняется соответствующий запрос.
- Time – время, в течение которого выполняется запрос.
- Cmd – тип SQL-запроса.
- State – состояние SQL-запроса.
- Query – SQL-запрос, который выполняется в данный момент.
Стоит отметить, что длина значений некоторых столбцов была усечена для экономии места. Например, имя базы данных может быть неполным. Кроме того, отображается только начало длинного запроса. Чтобы узнать точное имя базы данных и запрос, стоит использовать EXPLAIN.
Запрос EXPLAIN
Если вы видите в списке запрос, который выполняется слишком долго, вы можете просто EXPLAIN запрос, нажав ‘e’ и введя Id запроса.
В следующем выводе будет показано имя базы данных и запрос полной длины, за которым последует вывод EXPLAIN. Если количество строк, переданных в запросе, превышает 1000, соответствующая информация отображается красным цветом.
Уничтожение запроса
Чтобы уничтожить запрос, нажмите кнопку ‘k’ и введите идентификатор запроса.
Выход из Mytop
Нажмите ‘q’, чтобы выйти из программы.
Мониторинг серверных запросов
Нажатие кнопки ‘m’ переводит mytop в режим “Запросы в секунду” и отображает количество SQL-запросов в секунду. Выйти из этого режима можно, нажав ‘q’.
Неактивные запросы
Mytop не отображает неактивные (Sleep) запросы по умолчанию. Чтобы увидеть эти запросы, необходимо нажать клавишу ‘i’.
Дополнительная информация
При нажатии клавиши ‘?’ появится дополнительная информация об опциях mytop.