Мониторинг производительности MySQL - MyTop

Порой необходимо просмотреть текущие процессы MySQL в реальном времени. И для этого очень удобно подходит такая утилита как mytop. Что то схожа с утилитой по процессам top. Оговорюсь все приведенные команды и манипуляции я опробовал на Centos 6, но они не слишком отличаются с другими Linux разновидностями.

Перед ее использованием ее необходимо поставить.

# yum install mytop

За собой он потянет перл. Он не помешают в работе системы (если нет противоречий с другим ПО), для других утилит он тоже необходим (о них мы обсудим позже).

Есть несколько вариантов запуска один не безопасный второй более менее. Начнем не с безопасного. В корне пользователя от которого будем запускать утилиту необходимо создать файл .mytop и ввести туда параметры для запуска.

# vim ~/.mytop

user=имя_пользователя_БД
pass=пароль_пользователя_бд
host=localhost
delay=5
port=3306
socket=
batchmode=0
header=1
color=1
idle=1

Теперь можно с командной строки запускать команду mytop и без доп параметров он будет автоматически запускаться. Можно задать параметры и при запуске с ключами что более безопасно, так как пароль вы вводите постоянно сами и его нигде не можно увидеть. Можно запустить примерно так, и мы увидим все процессы в MySQL со всеми БД.

# mytop -uroot -p

Есть и другие ключи приведу основные:

-u или -user username : имя пользователя, по умолчанию используется root
-p или -pass password : пароль пользователя
-h или -host hostname : ip адрес сервера, по умолчанию localhost
-port или -P port : используется если сервер запущен на нестандартном порту
-s или -delay seconds : частота обновления информации, по умолчанию 5 секунд
-d или -db basename : имя базы данных которую мониторим.

 При запуске утилиты мы увидим все процессы и ими можно немного по управлять. Ниже основные команды которыми можно использовать.

? - display this screen (отобразить подсказку)
# - toggle short/long numbers (not yet implemented)
c - command summary view (based on Com_* counters) (Общий вид команды)
d - show only a specific database (показать только определенную базу данных)
e - explain the query that a thread is running (выполнить explain для конкретного запроса)
f - show full query info for a given thread (показать подробную информацию запроса для данного потока)
F - unFilter the dispaly (убрать все фильтры)
h - show only a specifc host's connections (отображать только заданный Host)
H - toggle the mytop header (перестать отображать заголовок)
i - toggle the display of idle (sleeping) threads (включать и отключать отображение sleep процессы)
I - show innodb status (отобразить innodb параметры)
k - kill a thread (убить процесс)
p - pause the display (пауза, заморозить отображение)
o - reverse the sort order (toggle) (изменить порядок сортировки)
q - quit (выйти)
r - reset the status counters (via FLUSH STATUS on your server) (сбросить состояние счетчика)
s - change the delay between screen updates (частота обновления дисплея)
t - switch to thread view (default)
u - show only a specific user (отобразить только определенного пользователя)
: - enter a command (not yet implemented) (ввести команду с консоля)

Вот и все, что найду еще, опишу и дополню.