О web-разработке
и даже немного больше...

Утилита Mytop для MySQL

В качестве базы данных MySQL довольно часто используется на многих сайтах. Большой поток пользователей может порождать значительную нагрузку на сервер баз-данных и не только. Вообще MySQL по своей сути не очень справляется с большим потоком запросов как таковой без дополнительных средств кэширования и других механизмов оптимизаций. Вообще этой теме по поводу большого трафика на ресурс с высокими нагрузками существует отдельная тема, которая так и называется hightload. Тема весьма интересная, и включает в себя колоссальное количество концепций и технологий, люди которые занимаются этими делами, как правило, уже подкованные в этом деле, т.к. эта область требует навыков довольно высокого уровня.

Не будем далеко отходить от темы данного поста, и здесь я бы хотел рассказать об одной интересной и полезной утилите под названием Mytop. В Unix системах есть утилита top, которая отображает список запущенных процессов в виде таблицы, а так же расходуемые ресурсы. Подобно утилите top для MySQL есть mytop, которая позволяет просматривать все обращения к MySQL серверу в режиме реального времени. Довольно удобно и просто, особенно когда есть необходимость узнать, что вообще происходит на данный момент с сервером MySQL.
Разумеется, перед её использованием, её нужно установить. В качестве сервера я использую Linux CentOS, для систем из других ветвей команды установки могут немного иначе, полагаю, разобраться будет не сложно.

Установка mytop на CentOS:

# yum install –y mytop

После того как утилита была успешно установлена, самое время испробовать её.

Запуск mytop:

# mytop -u пользователь -p пароль -d база_данных

Для запуска утилиты mytop вам понадобится указать учетную запись в mysql, пароль, а так же имя базы данных.
Для удобства использования данные учетной записи можно прописать в файле конфигурации ~/.mytop. Файл с именем .mytop следует создать в домашней директории пользователя, сделать это можно с помощью стандартного в системе редактора vi.

Создаем файл .mytop:

# vi ~/.mytop

Параметры в файле конфигурации .mytop:

user=root		# пользователь
pass=			# пароль
host=localhost  # узел
db=test			# имя базы
delay=5			# время обновления результатов
port=3306		# порт MySQL
socket=			# при необходимости работы через сокет
batchmode=0		# очистка экрана, позволяет выстраивать все запросы MySQL в ряд
header=1		# отображать данные в заголовке
color=1			# показ в цветном режиме
idle=1			# показывать простаивающие процессы в списке

Обратите внимание.
Комментарии со знаком # указаны для пояснения, в конфигурационном файле их быть не должно, т.к. будет возникать ошибка при запуске.

После запуска утилиты на экране появится такая таблица:
mytop

Давайте кратко рассмотрим, что к чему. Самая первая строка обозначает имя сервера (имя локального хоста), а так же в скобках указана версия сервера MySQL. В правом углу указывается время, которое работает MySQL без перезапуска, формат: «дни + часы : минуты : секунды», после чего в квадратных скобках указывается время системе. Вторая строка указывает на количество MySQL запросов за период непрерывной работы сервера, информацию о медленных запросах, а так же среднее число запросов в секунду, данные о потоках. Строка Key Efficiency обозначает эффективность буфера ключей, иными словами как часто сервер использует ключи в буфере, не обращаясь при этом к диску. В этой же строке указывается среднее число объема данных отправленных и полученных сервером, а так же объем данных пересылаемых в данный момент.

Далее идет таблица с данными об активных потоках, в том числе о работе mytop. Поля таблицы:
Id — идентификатор потока;
User — имя пользователя;
Host/Ip – узел;
DB – имя базы данных;
Timeвремя выполнения;
Cmd – команда;
Query or State – текущий запрос или состояние.

Для лучшей видимости запускать программу рекомендуется в терминале шире обычных 80 символов. Утилита mytop так же имеет набор команд, которыми вы можете воспользоваться в случае необходимости. Для отображения справки по командам нажмите клавиши «shift + ?», в результате будет показан список команд, а так же их назначение.
mytop-commands

К примеру, чтобы выбрать конкретный узел или базу данных нажмите «h» или «d» соответственно. Для фильтрации по пользователям можно использовать клавишу «u». Сброс фильтрации осуществляется командой клавиши «Shift+f» (заглавная F). Узнать дополнительную информацию по выбранному потоку можно с помощью клавиши «f». С помощью клавиши «k» можно завершить поток.
Утилита mytop может так же запускаться в пакетном режиме, это означает, что вы можете использовать mytop в своих скриптах. Чтобы запустить утилиту в пакетном режиме следует использовать ключ –b при запуске. При вызове в пакетном режиме утилита mytop выводит таблицу в полном виде, после чего завершает свою работу. О том, как можно использовать эти данные уже решать остается вам. Утилита mytop может запускаться практически на всех популярных системах семейства Unix. На этом, пожалуй, остановимся, желаю успехов в труде!

Опубликован: 31.10.2015 г.

См. также:

Установка и использование FFmpeg в CentOS 7
Сжатие PDF-файлов в Linux
Установка Node.js на Linux CentOS 7
Обновление пакетов в CentOS
Bash: mail: command not found
Выставляем временную зону в CentOS 7
Настройка SELinux, включение, отключение
Меняем пароль root в MySQL 5.7

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Комментарии
  • Загрузка...
Друзья сайта