Linux > Утилита Mytop для MySQL
31.10.2017 12:27:07
Наиболее часто встречающиеся слова в статье:
[сервера] [клавиши] [использовать] [запросов] [которая] [утилита] [помощью] [указывается] [Утилита] [пакетном]
Статья:
В качестве базы данных MySQL довольно часто используется на многих сайтах. Большой поток пользователей может порождать значительную нагрузку на сервер баз-данных и не только. Вообще MySQL по своей сути не очень справляется с большим потоком запросов как таковой без дополнительных средств кэширования и других механизмов оптимизаций. Вообще этой теме по поводу большого трафика на ресурс с высокими нагрузками существует отдельная тема, которая так и называется hightload. Тема весьма интересная, и включает в себя колоссальное количество концепций и технологий, люди которые занимаются этими делами, как правило, уже подкованные в этом деле, т.к. эта область требует навыков довольно высокого уровня.
Не будем далеко отходить от темы данного поста, и здесь я бы хотел рассказать об
одной интересной и полезной утилите под названием Mytop.
В Unix системах есть утилита top, которая отображает список запущенных процессов
в виде таблицы, а так же расходуемые ресурсы. Подобно утилите top для MySQL есть
mytop, которая позволяет просматривать все обращения к MySQL серверу
в режиме реального времени. Довольно удобно и просто, особенно когда есть
необходимость узнать, что вообще происходит на данный момент с сервером MySQL.
Разумеется, перед её использованием, её нужно установить. В качестве сервера я
использую Linux CentOS, для систем из других ветвей команды установки могут
немного иначе, полагаю, разобраться будет не сложно.
Установка mytop на CentOS:
1
|
# yum install –y mytop |
После того как утилита была успешно установлена, самое время испробовать её.
Запуск mytop:
1
|
# mytop -u пользователь -p пароль -d база_данных |
Для запуска утилиты mytop вам понадобится указать учетную запись в
mysql, пароль, а так же имя базы данных.
Для удобства использования данные учетной записи можно прописать в файле
конфигурации ~/.mytop.
Файл с именем .mytop следует создать в домашней директории пользователя, сделать
это можно с помощью стандартного в системе редактора vi.
Создаем файл .mytop:
1
|
# vi ~/.mytop |
Параметры в файле конфигурации .mytop:
01
02
03
04
05
06
07
08
09
10
11
|
user=root # пользователь
pass= # пароль
host=localhost # узел
db=test # имя базы
delay=5 # время обновления результатов
port=3306 # порт MySQL
socket= # при необходимости работы через
сокет
batchmode=0 # очистка экрана, позволяет
выстраивать все запросы MySQL в ряд
header=1 # отображать данные в заголовке
color=1 # показ в цветном режиме
idle=1 # показывать простаивающие процессы
в списке |
Обратите внимание.
Комментарии со знаком # указаны для пояснения, в конфигурационном файле их быть
не должно, т.к. будет возникать ошибка при запуске.
После запуска утилиты на экране появится такая таблица:
Давайте кратко рассмотрим, что к чему. Самая первая строка обозначает имя сервера (имя локального хоста), а так же в скобках указана версия сервера MySQL. В правом углу указывается время, которое работает MySQL без перезапуска, формат: «дни + часы : минуты : секунды», после чего в квадратных скобках указывается время системе. Вторая строка указывает на количество MySQL запросов за период непрерывной работы сервера, информацию о медленных запросах, а так же среднее число запросов в секунду, данные о потоках. Строка Key Efficiency обозначает эффективность буфера ключей, иными словами как часто сервер использует ключи в буфере, не обращаясь при этом к диску. В этой же строке указывается среднее число объема данных отправленных и полученных сервером, а так же объем данных пересылаемых в данный момент.
Далее идет таблица с данными об активных потоках, в том числе о работе mytop.
Поля таблицы:
Id —
идентификатор потока;
User — имя
пользователя;
Host/Ip – узел;
DB – имя базы
данных;
Time — время
выполнения;
Cmd – команда;
Query or State –
текущий запрос или состояние.
Для лучшей видимости запускать программу рекомендуется в терминале шире обычных
80 символов. Утилита mytop так же имеет набор команд, которыми вы можете
воспользоваться в случае необходимости. Для отображения справки по командам
нажмите клавиши «shift + ?», в результате будет показан список команд, а так же
их назначение.
К примеру, чтобы выбрать конкретный узел или базу данных нажмите «h» или «d»
соответственно. Для фильтрации по пользователям можно использовать клавишу «u».
Сброс фильтрации осуществляется командой клавиши «Shift+f» (заглавная F). Узнать
дополнительную информацию по выбранному потоку можно с помощью клавиши «f». С
помощью клавиши «k» можно завершить поток.
Утилита mytop может так же запускаться в пакетном режиме, это означает, что вы
можете использовать mytop в своих скриптах. Чтобы запустить утилиту в пакетном
режиме следует использовать ключ –b при запуске. При вызове в пакетном режиме
утилита mytop выводит таблицу в полном виде, после чего завершает свою работу. О
том, как можно использовать эти данные уже решать остается вам. Утилита mytop
может запускаться практически на всех популярных системах семейства Unix.