понедельник, 27 сентября 2010 г.

Как работает mytop

В процессе разработки web-приложений периодически остро встает вопрос использования ресурсов системы и, в большинстве случаев, базы данных. Наиболее распространенное сочетание это Apache + MySQL + PHP. В данной статье речь пойдет о простой, но очень важной консольной утилите mytop. По сути это клон знакомой любому админу системной утилиты top. Mytop показывает текущее состояние mysql-сервера и использование ресурсов системы. Утилита следит за потоками MySQL -она подключается к серверу MySQL, периодически выполняя команды SHOW PROCESSLIST, SHOW STATUS и отображает сводные результаты, к которым можно применять различные фильтры.
Совместимость.
* Linux (2.2.x, 2.4.x)
* FreeBSD (2.2, 3.x, 4.x)
* Mac OS X
* BSDI 4.x
* Solaris 2.x
* Windows NT 4.x (ActivePerl)
Установка.
Утилита входит в состав большинства дистрибутивов серверных операционных систем (за исключением Windows 2003-2008, там используются свои утилиты для MSSQL). Тем не менее, можно установить mytop из дистрибутива: http://jeremy.zawodny.com/mysql/mytop/
Использование.
Запуск утилиты производится из консоли стандартым синтаксисом команды: mytop -u пользователь -p пароль -d база_данных
(Подробнее о дополнительных параметрах: http://jeremy.zawodny.com/mysql/mytop/mytop.html)
Экран Mytop разбит на 2 части.
Заголовок (верхние 4 строки) содержат суммарную информацию о состоянии вашего MySQL сервера. Он может выглядеть например так:
MySQL on localhost (3.22.32) up 3+23:14:20 [23:54:52]
Queries Total: 617 Avg/Sec: 0.00 Now/Sec: 0.05 Slow: 0
Threads Total: 1 Active: 1 Cached: 0
Key Efficiency: 88.38% Bytes in: 0 Bytes out: 0

  • Первая строка: имя хоста и версия запущенного сервера MySQL. Верххний правый угол - аптайм сервера (время непрерывной работы) дней+часов+минут+секунд.
  • Вторая строка выводит: общее количество обработанных запросов к базе, среднее количество запросов в секунду (производительность сервера), текущее кол-во запросов в секунду (реалтайм) и кол-во медленных запросов.
  • Третья строка показывает информацию о процессах: всего, активных, кешированных. В версиях MySQL ниже 3.23.x эти ззначения остаются нулевыми (сервер не предоставляет такую информацию).
  • Четвертая строка: сведения об эффективности буфера ключей - как часто MySQL находит ключи в буфере, не обращаясь к диску, среднее число байтов, посланных и полученных сервером, и число байтов, пересылаемых в данный момент.

Вторая часть экрана показывает все активные потоки (в том числе тот, который использует MyTop). Здесь выводятся в табличной форме имя пользователя, базы данных и узла, а также текущий запрос и состояние.
Id User Host Dbase Time Cmd Query or State
-- ---- ---- ----- ---- --- --------------
61 jzawodn localhost music 0 Query show processlist


С помощью данной утилиты легко "подсмотреть" кто и что используется сервер БД.

Комментариев нет: