Mtop — мониторинг нагрузки на MySQL-сервер
- Posted by swiki
- Posted on 11 февраля, 2018
- MySQL/MariaDB
- No Comments.
При работе с MySQL довольно полезно следить за нагрузкой, которая ложится на MySQL-сервер. В портах есть полезная утилита — mtop. Она в режиме реального времени отслеживает и показывает текущие запросы к безе данных, время их выполнения, статус MySQL-сервера в удобной форме.
Итак, выполним установку утилиты из системы портов:
# cd /usr/ports/databases/mtop && make install clean && rehash |
По завершению установки создадим MySQL-пользователя, которому дадим права на просмотр процессов MySQL:
mysql> grant process on *.* to ‘mtop’@’localhost’ identified by ‘mtop_passwd_here’; Query OK, 0 rows affected (0.11 sec) |
На этом все «приготовления» можно считать законченными. Запустим mtop и посмотрим на результат. Параметри запуска следующие:
# mtop -dbu mtop -p mtop_passwd_here |
Если не указывать ключ -dbu, то mtop будет пытаться подключаться от имени пользователя mysqltop.
Теперь можно наблюдать за динамикой SQL-запросов. При этом быстрые запросы отображаются белым цветом и потом, по мере роста длительности выполнения цвет начинает меняться, если запрос выполняется более 10 секунд он окрашивается фиолетовым, более 20 секунд — желтым, более 40 секунд — красным. Это значения по умолчанию, но их можно переназначить.
Утилита очень хорошо визуально демонстрирует проблемные места в работе MySQL. Так же очень хорошо видны такие показатели как число процессов (threads) и сколько из них активны (running), сколько процессов закешированны(cached), сколько запросов поступило и сколько из них медленных(Queries/slow) и какова эффективность кеша запросов (Cache Hit).
Для того, чтобы узнать все возможности и ключи запуска утилиты — настоятельно рекомендую ознакомиться со страницей руководства.
А чтобы ознакомиться с доступными ключами во время работы утилиты, необходимо нажать «?«. В результате получаем такую подсказку:
q - quit ? - help; show this text f - flush status F - fold/unfold column names in select statement display k - kill processes; send a kill to a list of ids s - change the number of seconds to delay between updates m - toggle manual refresh mode on/off d - filter display with regular expression (user/host/db/command/state/info) h - display process for only one host u - display process for only one user i - toggle all/non-Sleeping process display o - reverse the sort order e - explain a process; show query optimizer info t - show mysqld stats (show status/mysqladmin ext) T - show mysqld important stats v - show mysqld variables (show variables/mysqladmin vars) z - zoom in on a process, show sql statement detail r - show replication status for master/slaves |
Думаю, что переводить нету смысла, и так все понятно. Ну и напоследок — скриншоты вывода утилиты mtop: