Как использовать Mytop для мониторинга производительности MySQL / MariaDB в Linux

by itisgood

Mytop – это консольный (не-gui) инструмент, который отображает информацию о производительности сервера MySQL, например «top».

Он будет подключаться к серверу MySQL и периодически запускать команды SHOW PROCESSLISTand SHOW STATUS и пытаться обобщить информацию из них в полезном формате, это было вдохновлено верхним элементом инструмента мониторинга системы.

Экран дисплея Mytop разделен на две части.

MySQL-сервер, называемый заголовком (верхние 6 строк) и второй список активных потоков, работающих в настоящее время в MySQL.

Первая строка идентифицирует имя хоста сервера (localhost) и запущенную версию MySQL.

Правая сторона показывает время работы сервера MySQL в формате days + hours: minutes: seconds, а также текущее время.

MySQL on localhost (5.5.55-cll)                       up 6+10:17:54 [20:28:40]

Вторая строка отображает общее количество запросов, обработанных сервером, среднее количество запросов в секунду, среднее число медленных запросов в секунду и процент запросов SELECT, INSERT, UPDATE и DELETE.

Queries: 29.8M  qps:   56 Slow:    26.0         Se/In/Up/De(%):    89/00/01/00

Третья строка отображает среднее число запросов в секунду в реальном времени, среднее число медленных запросов в секунду в реальном времени, а alos – активные и кэшированные потоки.

qps now:   66 Slow qps: 0.0  Threads:    2 (   1/   0) 89/01/00/00

Четвертая строка отображает процент эффективности буфера для буфера, средний уровень входящего буфера и исходящий буфер в байтах, таким образом отображая одну и ту же информацию в режиме реального времени.

Key Efficiency: 100.0%  Bps in/out:  7.1k/272.0k   Now in/out:  8.9k/305.5k

Вторая часть отображает список активного потока (идентификатор потока, имя пользователя, хост, имя базы данных, количество секунд бездействия, имя исполняемой команды и информация запроса).

По умолчанию они сортируются в соответствии с их временем простоя (по крайней мере, в режиме ожидания).

      Id      User         Host/IP         DB      Time    Cmd Query or State
       --      ----         -------         --      ----    --- ----------
   742360      root       localhost      mysql         0  Query show full processlist
   742368   cphulkd       localhost    cphulkd         4  Sleep

Как установить Mytop в Linux

Mytop доступен в репозиториях большинства основных дистрибутивов. Поэтому, чтобы установить его, используйте диспетчер пакетов распространения.

Для систем на базе Debian используйте apt-get или менеджер пакетов apt для установки mytop.

$ sudo apt-get install mytop

Для систем на основе RHEL / CentOS включите репозиторий EPEL, чтобы установить Mytop и использовать диспетчер пакетов yum.

$ sudo yum install mytop

Для системы Fedora используйте диспетчер пакетов dnf для установки mytop.

$ sudo dnf install mytop

Для системы openSUSE используйте диспетчер пакетов zypper для установки mytop.

$ sudo zypper in mytop

Для систем на базе Arch Linux используйте диспетчер пакетов pacman для установки mytop.

$ sudo pacman -S mytop

Как настроить mytop

Создайте настроенный файл конфигурации /root/.mytop, чтобы использовать Mytop.

См. Образец файла конфигурации.

$ sudo nano /root/.mytop
host=localhost
db=mysql
delay=5
port=3306
socket=
batchmode=0
header=1
color=1
idle=1

Как использовать Mytop в Linux

Просто запустите команду mytop самостоятельно без какой-либо опции, вы хотите получить скриншот, как показано ниже.

# mytop

MySQL on localhost (5.5.55-cll)                              up 6+10:52:09 [21:02:55]
 Queries: 29.9M  qps:   56 Slow:    26.0         Se/In/Up/De(%):    89/00/01/00
             qps now:    9 Slow qps: 0.0  Threads:    4 (   1/   0) 66/02/00/00
 Key Efficiency: 100.0%  Bps in/out:  7.1k/271.7k   Now in/out: 826.8/201.1k

      Id      User         Host/IP         DB      Time    Cmd Query or State
       --      ----         -------         --      ----    --- ----------
   743938      root       localhost      mysql         0  Query show full processlist
   744404 daygeekc_       localhost daygeekc_t         0  Sleep
   744405 mageshmm_       localhost mageshmm_m         0  Sleep
   744406 daygeekc_       localhost daygeekc_t         0  Query SELECT * FROM daygeekc_wp

Выполните следующую команду для подключения и мониторинга только определенной базы данных.

# mytop -d daygeekc_than

MySQL on localhost (5.5.55-cll)                              up 6+11:43:13 [21:53:59]
 Queries: 30.0M  qps:   56 Slow:    26.0         Se/In/Up/De(%):    89/00/01/00
             qps now:   61 Slow qps: 0.0  Threads:    1 (   1/   0) 89/00/00/00
 Key Efficiency: 100.0%  Bps in/out:  7.1k/271.2k   Now in/out:  8.1k/357.7k

      Id      User         Host/IP         DB      Time    Cmd Query or State
       --      ----         -------         --      ----    --- ----------
   747197      root       localhost daygeekc_m         0  Query show full processlist
   747199      root       localhost daygeekc_m         0  Sleep

В представлении потоков mytop нажмите c, чтобы отобразить «счетчики команд» на основе значений Com_ * в SHOW GLOBAL STATUS.

  Command      Total  Pct  |  Last  Pct
           -------      -----  ---  |  ----  ---
            select   28015620  90%  |     1   2%
        set option    1086765   3%  |     1   2%
         change db     684749   2%  |     1   2%
       show tables     384118   1%  |     1   2%
            update     369023   1%  |     1   2%
       show fields     125676   0%  |     1   2%
            insert      85198   0%  |     1   2%
            delete      62374   0%  |     1   2%
      stmt execute      12991   0%  |     1   2%
      stmt prepare      12991   0%  |     1   2%
        stmt close      12991   0%  |     1   2%
       empty query       5447   0%  |     1   2%
  show processlist       3467   0%  |     1   2%
       show status       1586   0%  |     1   2%

В представлении потоков mytop нажмите, чтобы отобразить весь запрос, в котором поток (и все еще может быть) запущен.

Full query for which thread id: 744406

Введите идентификатор потока для запроса, который вы хотите просмотреть.

В нашем случае поток id 744406.

Thread 751271 was executing following query:

SELECT * FROM daygeekc_wp WHERE ...

-- paused. press any key to resume or (e) to explain --

Чтобы просмотреть подробную информацию об указанном идентификаторе нажмите e.

EXPLAIN SELECT * FROM dept_emp:

*** row 1 ***
          table:  daygeekc_wp
           type:  ALL
  possible_keys:  NULL
            key:  NULL
        key_len:  NULL
            ref:  NULL
           rows:  50000
          Extra:  NULL
-- paused. press any key to resume --

Чтобы узнать больше о Mytop, нажмите? для вывода вида опций.

Help for mytop version 1.7 by Jeremy D. Zawodny <jeremy@zawodny.com>

  ? - 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
  f - show full query info for a given thread
  F - unFilter the dispaly
  h - show only a specifc host's connections
  H - toggle the mytop header
  i - toggle the display of idle (sleeping) threads
  I - show innodb status
  k - kill a thread
  p - pause the display
  m - switch [mode] to qps (queries/sec) scrolling view
  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)

http://jeremy.zawodny.com/mysql/mytop/</jeremy@zawodny.com>

 

You may also like

Leave a Comment