Как мониторить активность MySQL в реальном времени (online)?

Аватар пользователя admin

Довольно часто возникает необходимость смотреть, что происходит на MySQL сервере. Какие для этого есть инструменты?

Инструментов много. Одним из старейших является mtop. Он обеспечивает показ текущих запросов в реальном времени и некоторую полезныю статистическую информацию, а также возможность "убить" запросы.

   q - выход
    ? - справка

отображение

    s - количество секунд между обновлением информации
    m - переключение между автоматическим и ручным режимом обновления
    d - отображение по фильтру регулярного выражения (user/host/db/command/state/info)
    F - вкл/выкл имена колонок при отображении оператора select
    h - показывать процесс только для одного сервера
    u - показывать процесс только для одного пользователя
    i - переключить все/активные процессы
    o - обратный порядок сортировки

управление

    k - убить процессы, отправить kill списку идентификаторов процессов
    e - исследовать процесс; показать информацию оптимизатора для запроса
    z - увеличить в один процесс; показать подробности sql оператора
    f - сбросить статистику (переменные состояния)
    t - показать статистику mysqld
    T - показать краткое/важное состояние
    v - показать переменные mysqld
    r - показать состояние репликации

Ещё одним полезным инструментом  является innotop.  Обычно он есть во всех популярных дистрибутивах (В Debian-based дистрибутивах в пакете mysql-client). Вот краткая справка по нему:

$ innotop -u root -p password

После первого запуска достаточно запускать innotop без указания логина/пароля — утилита попробует подключиться под логином последнего пользователя, и запросит пароль уже после запуска.

Можно запускать также как и top, указав ключ -n количество итераций (--count) и паузу между ними (-d):

$ innotop -n -u root -p password --count 10 -d 1

Если вы хотите подключиться не к локальному, а к удалённому серверу, используйте ключ -h:

$ innotop -u root -p password -h server.com

Uptime  MaxSQL  ReplLag  Cxns  Lock  QPS    QPS         Run  Run         Tbls  Repl   SQL
10m                      5     0  30.75  _-_____.^-       __________    32  Off 1

Обозначение колонок:

Uptime - время с момента запуска MySQL-сервера
MaxSQL- время выполнения самого «длинного» запроса, кроме системных и репликации
ReplLag - отставание по репликации
Cxns - общее количество подключений к серверу
Lock - количество запросов в состояние блокировки
QPS - количество запросов в секунду
Run - количество текущих запросов к серверу
Tbls - количество открытых таблиц
Repl - состояние репликации
SQL - самый «долгий» запрос

Переключение режимов (shift+буква):

A — Общий вид;
I — Информация о InnoDB I/O
Q — Список текущих запросов
B — Информация о InnoDB буферах
K — Ожидающие блокировки InnoDB
R — Операции со строками InnoDB
C — Общая статистика по запросам
L — Блокировки
S — Variables & Status
DInnoDB Deadlocks
M — Статус репликации
T — InnoDB Txns
F — InnoDB FK Err
O — Открытые таблицы
U — Пользователи

Действия:

d — Изменить частоту обновление информации (в секундах)
p — пауза
i — переключиться в инкрементальный режим
q — выход
n — переключиться к следующему соединию

0
Ваш рейтинг: Нет