Maatkit

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:42, 28 июня 2016.

Maatkit - набор инструментов для развития и администрирования баз данных с открытым исходным кодом. Большая часть функционала создана для MySQL, но также есть поддержка PostgreSQL и других баз данных. Maatkit включен в Percona Toolkit в 2011м году.

Описание

Maatkit позволяет исследовать эффективность отдельных SQL-запросов на конкретных настройках выбранного сервера, при этом эмпирически выявляя зависимости между нагрузкой и вариантами их построения. Причем, эта задача может решаться двояко: Maatkit может помочь оптимизировать конкретные, наиболее «дорогие запросы», так и выполнить улучшение самого MySQL под используемый на нём тип приложений и выявленные особенности нагрузки. В нем реализованы расширенные средства по администрированию MySQL: быстрому и очень гибкому резервированию и восстановлению информации, выполнению мониторинга и сервисных функций, сбору аналитической информации и ее визуальному отображению, автоматизации проведения рутинных операций, и многое-многое другое.

Примеры утилит

  1. mk-index-usage — считывает запросы из лог-файла и анализирует (через запрос EXPLAIN) насколько эффективно они используют индексы указанной БД;
  2. mk-table-usage — утилита, выполняющая чтение истории запросов из лог-файлов и автоматический анализ того, как используются таблицы (составляется граф, с анализом потоков движения данных между таблицами и системой);
  3. mk-duplicate-key-checker — находит дублирующиеся индексы и внешние ключи в таблицах MySQL;
  4. mk-log-player — позволяет заново, в том числе циклически, проигрывать отдельные последовательности уже обработанных запросов, для нахождения и выявления каких-то закономерностей;
  5. mk-upgrade — запускает отобранные запросы сразу на множестве профилируемых серверов MySQL, позволяя наглядно сравнивать их результаты и статистику исполнения, опять же, для выявления странностей или локальных провалов в производительности. Эта утилита также полезна после массового обновления версий установленных MySQL, для начального тестирования их состояния и готовности к дальнейшей производственной эксплуатации;
  6. mk-query-digest — одна из основных и наиболее развитых в составе пакета. Это, по заверению самих разработчиков, самый настоящий фреймворк для анализа лог-файлов и уже обработанных сервером запросов (информация консолидируется из разных источников, таких как slow query log или PROCESSLIST), и генерации на основании этих данных единого статистического отчета. Утилиту mk-query-digest можно использовать для фильтрации или группировки выполненных запросов по различным критериям, нахождению самых дорогих для сервера запросов;
  7. mk-loadavg — резидентно следит за параметрами работы сервера и запускает заранее указанные скрипты, если текущая нагрузка сервера БД превышает ранее заданную;
  8. mk-error-log — парсит лог-файлы MySQL, после чего выделяет все новые записи (или только ранее заданные администратором типы сообщений, например, выделяя все ошибки по уровню их критичности);
  9. mk-find находит по заданным критериям таблицы на MySQL-сервере(-рах) и запускает над ними некие действия (например, внешние скрипты), подобно утилите GNU find ;
  10. mk-table-sync синхронизирует дату заданных (или всех) таблиц MySQL;
  11. mk-purge-logs — утилита идеальна для очистки переполненных лог-файлов строго по заданным правилам;
  12. mk-fifo-split применяется для вывода содержимого любого файла поочередными блоками (тип очереди fifo) для его внешней обработки, по мере вывода этот «виртуальный» целевой файл будет соответственно «ужиматься» в размерах.

Дополнительно

  1. Blogerator
  2. Jsulib