Что такое монитор mysql
Обновлено: 21.11.2024
Согласно результатам опроса разработчиков Stack Overflow 2020 , более половины (55 %) респондентов говорят, что используют MySQL, что делает эту технологию баз данных наиболее распространенной среди разработчиков на сегодняшний день. Эта популярность в немалой степени обусловлена уникальными функциями MySQL, которые помогают легко удовлетворять потребности современных приложений, от небольших программных проектов до систем, критически важных для бизнеса.
Поскольку варианты использования становятся все более сложными и потребляют все большие объемы данных, мониторинг производительности играет еще более важную роль в управлении базами данных MySQL. Внимательное наблюдение за производительностью помогает гарантировать, что ваше приложение в полной мере использует высокую степень гибкости, масштабируемости, доступности, надежности и безопасности, которые предлагает MySQL.
Эта статья содержит подробное введение и руководство по мониторингу производительности MySQL. В нем объясняются ключевые понятия мониторинга баз данных MySQL, важные показатели производительности для отслеживания, а также шаги и инструменты, которые следует включить в эффективную стратегию мониторинга.
Такие инструменты, как MetricFire, делают мониторинг производительности MySQL более простым и эффективным. MetricFire — это полнофункциональная платформа мониторинга и наблюдения, которая идеально подходит для отслеживания производительности базы данных MySQL. С MetricFire вам не нужно самостоятельно управлять и хранить метрики временных рядов. Вместо этого MetricFire извлекает данные о производительности в размещенную базу данных временной шкалы и использует ее для создания настраиваемых отчетов и информационных панелей.
Узнайте больше о том, как MetricFire улучшит процесс мониторинга MySQL, с помощью быстрой демонстрации или начните работу с бесплатной пробной версией MetricFire уже сегодня.
Понимание производительности MySQL
MySQL служит основой многих современных веб-приложений, мобильных, настольных и облачных приложений. Он был построен с упором на скорость и надежность с самого начала. Вот почему одним из основных преимуществ MySQL является то, что это высокопроизводительная система баз данных.
Краткий обзор MySQL
Официальное справочное руководство по MySQL описывает MySQL как быструю и стабильную многопользовательскую многопоточную систему управления реляционными базами данных (RDBMS) с открытым исходным кодом. MySQL, впервые выпущенная в 1995 году, сейчас представлена в двух отдельных версиях: бесплатно доступной MySQL Community Server и коммерческой версии MySQL Enterprise Edition.
MySQL поддерживает важные функции, такие как гибкая архитектура (с открытым исходным кодом, многопоточный, подключаемый механизм хранения), совместимость со стандартами ANSI SQL, высокая доступность и репликация (встроенные механизмы репликации, глобальные идентификаторы транзакций, сегментирование и т. д. ), OLTP и транзакции (соответствие ACID, ссылочная целостность, блокировка на уровне строк и т. д.), безопасность базы данных и высокая производительность.
Эти функции делают MySQL идеальной базой данных для приложений, использующих распределенные операции, веб-сайтов и веб-приложений, которые необходимо быстро доставлять, а также систем, которым необходимо быстро масштабироваться по запросу.
Функции MySQL, влияющие на производительность базы данных
По сравнению с другими полнофункциональными реляционными базами данных, такими как PostgreSQL, MySQL предлагает относительно более легкий набор функций, что обеспечивает более высокую скорость и надежность.
Технические спецификации MySQL включают следующие элементы, влияющие на производительность базы данных:
- Группы ресурсов (используются для назначения потоков и распределения ресурсов)
- Разметка
- Оптимизировано для высокой степени параллелизма.
- Оптимизировано только для чтения.
- Оптимизировано для SSD
- Несколько типов индексов (B-дерево, R-дерево, хэш, полнотекстовый и т. д.)
- Пул потоков на стороне сервера
- Кэширование потоков подключения
- Диагностика и отслеживание SQL
- Схема производительности и системная схема
Благодаря этим встроенным функциям, ориентированным на производительность, MySQL по-прежнему пользуется репутацией быстрого и надежного решения для баз данных , даже несмотря на то, что другие варианты СУБД начинают соответствовать производительности MySQL при новом сравнительном тестировании.
Зачем нужен мониторинг производительности MySQL
Ваша база данных образует критически важный уровень в стеке приложений. Все в вашем приложении или на веб-сайте, построенное на основе этого уровня, будет зависеть от того, насколько хорошо работает база данных.
Мониторинг производительности базы данных помогает заранее устранять возможные проблемы в приложении до того, как они затронут конечных пользователей. Но помимо помощи в предотвращении и устранении проблем, мониторинг данных также позволяет:
- Определить возможности для оптимизации базы данных (например, переписать неоптимальные запросы)
- Определить влияние изменений (таких как миграция данных, изменение определений схемы, изменение конфигурации, добавление новых функций и т. д.)
- Предоставление серверных и вычислительных ресурсов в соответствии с фактическими потребностями (горизонтальное масштабирование)
- Выявление потенциальных уязвимостей в системе безопасности и применение соответствующих мер безопасности.
- Откройте для себя области для роста и улучшения пользовательского опыта.
Короче говоря, мониторинг производительности MySQL затрагивает все критические уровни вашего приложения или веб-сайта, а не только саму базу данных.
Ключевые показатели производительности базы данных MySQL
Прежде чем мы перейдем к отслеживанию различных показателей производительности MySQL, давайте сначала раскроем, что означает измерение производительности базы данных. В конце концов, именно это мы и делаем, когда отслеживаем показатели: измеряем определенные действия и записываем эти измерения.
Измерение производительности базы данных MySQL
В целом показатели производительности базы данных можно разделить на два основных типа: показатели рабочей нагрузки и показатели ресурсов. Метрики рабочей нагрузки измеряют общую производительность базы данных, измеряя объем работы или выходных данных, которые она может произвести за определенный период. В то же время метрики ресурсов измеряют, сколько аппаратных, программных и сетевых ресурсов потребляет база данных для работы.
- Пропускная способность. Показатели рабочей нагрузки, которые измеряют объем работы, выполняемой базой данных за заданный интервал времени (например, количество запросов, транзакций, операций чтения, записи и т. д.).
- Задержка (время выполнения). Показатели рабочей нагрузки, измеряющие время, необходимое базе данных для выполнения заданной единицы работы (например, время выполнения запроса).
- Подключения (параллельность): метрики ресурсов, показывающие количество запросов, которые выполняются одновременно и не могут быть завершены вовремя (например, количество подключенных потоков, запущенных потоков, прерванных подключений и т. д.).
- Буфер (использование): показатели ресурсов, которые измеряют использование буфера (кеша) (например, использование пула буферов).
Позже мы рассмотрим некоторые основные статистические данные, которые нужно отслеживать по каждой из этих категорий.
Поиск показателей производительности MySQL
Метрики мониторинга производительности MySQL можно запрашивать из трех разных источников: переменных состояния сервера, системной схемы и схемы производительности.
- Переменные состояния сервера: это внутренние «счетчики», которые MySQL поддерживает для предоставления информации о своей работе. К этим переменным относятся Questions , Slow_queries , Threads_running , Com_select и другие (см. полный список переменных состояния сервера здесь).
- Схема производительности: это функция MySQL для мониторинга событий сервера MySQL и выполнения запросов. Показатели производительности получаются путем запроса одной или нескольких таблиц в базе данных performance_schema, таких как таблица events_statements_summary_by_digest.
- Схема Sys: схема MySQL sys повышает удобство использования схемы производительности (с десятками таблиц иногда может быть утомительно работать). Схема включает представления, функции и процедуры, которые упрощают анализ данных, собранных схемой производительности.
В ближайшее время мы увидим примеры использования каждой из этих трех функций.
Выбор показателей эффективности для мониторинга
С учетом того, что для мониторинга вашей базы данных MySQL доступны сотни показателей производительности, за какой статистикой следует следить? Хотя это может варьироваться от одного варианта использования к другому, вот список некоторых критических показателей, которые необходимо отслеживать в каждой из четырех ключевых категорий производительности базы данных:
- Пропускная способность: – Вопросы: количество инициированных клиентом запросов, выполненных сервером.
- Запросы: количество запросов, выполненных сервером (включая запросы, отправленные клиентом, и запросы, выполненные в хранимых процедурах).
- Com_select : подсчитывает, сколько операторов SELECT было выполнено, указывает уровень активности только для чтения.
- Com_insert , Com_update и Com_delete : указывают уровень операций записи, которые обычно суммируются в одну переменную.
- Задержка:
- Slow_Queries : количество запросов, выполнение которых превышает long_query_time в секундах.
- Время выполнения запроса: статистика о том, сколько времени потребовалось для выполнения запросов, доступна в схеме производительности.
- Параллелизм:
- Aborted_connects: количество неудачных попыток подключения к серверу MySQL.
- Threads_connected: количество открытых в данный момент подключений.
- Threads_running: подсчитывает, сколько потоков не находится в режиме ожидания.
- Буферы:
- Статистика, полученная в результате выполнения оператора SHOW ENGINE INNODB STATUS
- Перенесите задачу мониторинга и хранения данных о производительности на внешнюю службу, чтобы ресурсы вашей базы данных были сосредоточены исключительно на обслуживании производительности базы данных приложения на разных уровнях детализации.
- Настройте оповещения и уведомления для различных событий и триггеров.
- Непрерывно отслеживайте производительность даже в больших объемах производства.
- Ошибки: откаты и прерванные соединения.
- Задержка. Продолжительность запросов и операций. Сколько времени в среднем занимают запросы? Запросы становятся медленнее?
- Источники задержек и медленных запросов: сканирование таблиц/неиндексированный поиск.
- Насыщение ресурсов: максимальное количество подключений, переполнение диска, задержка реплики, время ввода-вывода, емкость буфера и исчерпание кэша.
- Задержка репликации. Происходит, когда узлы-последователи не могут идти в ногу с состоянием лидеров.
- Максимум подключений: примите меры при обнаружении исчерпания подключений MySQL.
- Состояние диска (подкачка): отслеживается на уровне системы. Помогает сопоставить системные показатели MySQL с базовыми системными ресурсами.
- Недостаточное использование: оплата ресурсов, которые вы не используете.
- Чрезмерное использование: MySQL постоянно перегружен, что сказывается на конечных пользователях.
- Пропускная способность: какой объем работы выполняет система?
- Результаты. Каков результат работы (ошибка или успех)?
- Задержка: сколько времени занимает работа?
- Насыщение. Достаточно ли ресурсов системы для обслуживания рабочей нагрузки?
- Простота настройки.
- Доступно как в виде SaaS (нечего управлять), так и в виде локального решения.
- Часть платформы мониторинга с полным стеком, поэтому легко сопоставить производительность MySQL с метриками, событиями и журналами из других частей инфраструктуры и стека приложений.
- Множество готовых информационных панелей и диаграмм, а также правила оповещения.
- Только агент является открытым исходным кодом.
- На момент написания этой статьи годовых цен не было, хотя возможны скидки на пакеты.
- Медленные запросы
- Ошибки
- Максимальное количество подключений
- Состояние диска (подкачка)
- Простота в использовании и настройке
- Подробное справочное руководство
- Готовые панели мониторинга (в отличие от решений, предоставляющих только необработанные показатели или одну готовую панель мониторинга).
- Требуется собственная инфраструктура, что приводит к увеличению накладных расходов по сравнению с решениями SaaS.
- Требуемое дополнительное обслуживание (люди, время, опыт) также увеличивает затраты.
- Оповещения изначально не встроены. Для этого вам нужно запустить еще один компонент Prometheus под названием Alertmanager.
- Ошибки
- Задержка
- Медленные запросы
- Состояние репликации
- Максимальное количество подключений
- Состояние диска (подкачка)
- Простая установка на основе агента устраняет необходимость в размещении метрической инфраструктуры.
- Простота настройки.
- Нет общедоступных прайс-листов; необходимо связаться с агентом по продажам для получения предложения.
- Приобретена в декабре 2019 года компанией SolarWinds, которая не продемонстрировала особых инноваций по сравнению с предыдущими приобретениями (например, Loggly).
- Ошибки
- Задержка
- Медленные запросы
- Состояние репликации
- Максимальное количество подключений
- Состояние диска (подкачка)
- Дорогой, несмотря на то, что это официальное решение для мониторинга Oracle.
- Не управляемая служба.
- Документация отсутствует и не актуальна.
- MySQL не работает
- Задержка
- Ошибки
- Состояние репликации
- Максимальное количество подключений
- Состояние диска (подкачка)
- Размещенная SaaS.
- Соотнесите показатели производительности MySQL с показателями других сервисов.
- Возможности оповещения.
- Документация ограничена.
- Ограниченное количество готовых панелей мониторинга MySQL.
- В основном ответственность за мониторинг MySQL лежит на конечном пользователе.
- MySQL не работает
- Задержка
- Ошибки
- Состояние репликации
- Максимальное количество подключений
- Состояние диска (подкачка)
- Относительно прост в эксплуатации.
- Большое и активное сообщество.
- Не управляемая служба.
- Требуется запуск MySQLD Exporter поверх Prometheus.
- Пользователь отвечает за запуск системы оповещения экосистемы Prometheus (AlertManager).
- Предварительно упакованные версии этих компонентов недоступны.
- Модель хостинга: собственный хостинг или SaaS.
СОВЕТ. Хотя самостоятельный хостинг может показаться более дешевым вариантом, если принять во внимание затраты на инфраструктуру и обслуживание, которые почти всегда недооцениваются, SaaS часто оказывается дешевле. - Взаимодействие с пользователем: информационные панели.
СОВЕТ. Ищите решения с готовыми панелями мониторинга, чтобы сэкономить время на поиске показателей для мониторинга, способах их агрегирования, а затем создавать панели самостоятельно. - Оповещения: возможность направлять уведомления в чат или службу реагирования на инциденты.
СОВЕТ. Ищите решения со встроенными и полностью интегрированными оповещениями, чтобы упростить рабочий процесс. - Цены: стоимость решения и дополнительных инструментов.
СОВЕТ. При сравнении решений учитывайте, нужно ли вам платить за параллельный запуск других инструментов, и обязательно учитывайте инфраструктуру, людей, время и усилия для расчета совокупной стоимости владения (TCO). . - Sematext MySQL Monitoring Полнофункциональная система мониторинга производительности, которая отслеживает производительность MySQL вместе с журналами, событиями и показателями.
- Percona Monitoring and Management Tool Программный инструмент для мониторинга с открытым исходным кодом, предоставляющий панель мониторинга для мониторинга производительности MySQL.
- Инструмент MySQL Monitor от Monyog Мощный инструмент мониторинга, который упрощает поиск и устранение любых ошибок или проблем и устраняет их как можно скорее.
- SQL PowerTools Облегченный и «нулевой инструмент для мониторинга базы данных», который позволяет отслеживать каждое действие MySQL и время отклика конечного пользователя.
- VividCortex MySQL Analyzer Еще один инструмент для анализа производительности MySQL, который позволяет отслеживать медленные запросы, задержки, состояние диска, состояние репликации, ошибки и многое другое.
- Пропускная способность
- Задержка
- Использование индекса
- Ошибки
- Предупреждения
- Планы выполнения
- Ошибки
- Состояние диска (перестановка)
- Медленные запросы
- Максимальное количество подключений
- Задержка репликации
- Единое представление всех серверов
- Анализ тенденций и анализ истории
- Отслеживание журнала ошибок
- Персонализированная панель управления
- Менеджер событий
- Пользовательские объекты SQL, обеспечивающие полную оптимизацию с помощью JavaScript.
- Блокировка
- Задание агента SQL
- Время работы с SQL
- Использование диска
- Время простоя ввода-вывода
- Условия ожидания SQL
- Фрагментация индекса
- Взаимоблокировки
- Медленные запросы
- Задержка
- Состояние диска (перестановка)
- Ошибки
- Максимальное количество подключений
- Состояние репликации
Обратите внимание, что, если не указано иное, приведенные выше показатели можно получить, запросив встроенные переменные состояния сервера. Описания также взяты из официальной документации MySQL.
Сбор и мониторинг показателей производительности MySQL
В предыдущем разделе мы рассмотрели, какие типы показателей производительности следует отслеживать в вашей базе данных MySQL. Теперь мы рассмотрим несколько способов и инструментов для сбора необходимых данных.
Переменные состояния сервера
Мы узнали, что MySQL отслеживает «счетчики», называемые переменными состояния сервера. Переменные состояния сервера дают вам информацию об операциях MySQL. Общее количество переменных состояния сервера зависит от используемой версии MySQL Server.
Доступ к этим переменным можно получить с помощью команды SHOW [GLOBAL | SESSION] STATUS. С GLOBAL оператор возвращает агрегированные значения по всем подключениям, а SESSION ограничивает значения только текущим подключением.
Например, следующий оператор отображает все переменные состояния сервера и их значения для всех подключений:
Вы также можете просмотреть одну переменную состояния сервера:
В предыдущем разделе упоминалось несколько важных переменных состояния сервера, таких как Questions , Queries , Com_insert , Com_update и т. д. Полный список доступных переменных см. в документации для вашей версии MySQL Server.
Схема производительности
Схема производительности MySQL отслеживает выполнение сервера на уровне отдельных запросов. На сервере MySQL, который поддерживает схему производительности, она доступна в виде базы данных с именем performance_schema, которая содержит таблицы, которые можно запрашивать с помощью обычных операторов SELECT. Прежде чем вы сможете начать запрашивать схему производительности, сначала нужно убедиться, что она правильно установлена и включена.
База данных performance_schema группирует таблицы в зависимости от типа содержащейся в них информации: текущие события, истории и сводки событий, экземпляры объектов и информация об установке (конфигурации). Чтобы просмотреть все доступные таблицы в performance_schema , выполните следующую инструкцию:
Ранее мы отмечали, что ключевую статистику производительности можно найти, запросив ряд таблиц в базе данных performance_schema, в частности таблицу events_statements_summary_by_digest.
Следующий оператор возвращает запрос с наибольшим временем выполнения:
Обратите внимание, что вы можете избежать использования имени схемы performance_schema в приведенном выше выражении, установив performance_schema в качестве текущей базы данных с помощью USE performance_schema.
Системная схема
Даже в приведенном выше довольно простом примере нетрудно представить, что запросы к схеме производительности могут стать утомительными в более сложных случаях использования. Вот почему MySQL представила схему sys как функцию, начиная с версии 5.7.7.
Схема sys предоставляет представления, хранимые процедуры и хранимые функции, упрощающие доступ к информации, содержащейся в таблицах базы данных performance_schema.
В примере из официальной документации по схеме sys мы видим это в действии с представлением host_summary_by_file_io, которое суммирует ввод-вывод файлов, сгруппированных по хостам, и отображает более читаемые значения задержки:
Более удобный подход к изучению и исследованию производительности базы данных, который также поддерживается MySQL, — это использование графического интерфейса Workbench. MySQL Workbench предоставляет визуальный способ проектирования, управления и мониторинга баз данных MySQL.
Помимо встроенной панели мониторинга, отображающей высокоуровневую статистику, MySQL Workbench также позволяет быстро детализировать показатели производительности, содержащиеся в схеме sys:
Полнофункциональные инструменты мониторинга
Функции мониторинга, которые MySQL предоставляет по умолчанию, хорошо подходят для быстрых однократных проверок. Но когда вам нужен непрерывный мониторинг рабочей базы данных в режиме реального времени, этих встроенных функций и базовых функций будет недостаточно.
Здесь вам нужно использовать полнофункциональный инструмент мониторинга базы данных. Эти платформы интегрируются с MySQL для управления сбором, хранением и извлечением показателей производительности, что позволяет:
MetricFire — это пример надежной полнофункциональной платформы мониторинга, которая помогает вам постоянно отслеживать производительность базы данных в режиме реального времени. Как внешний инструмент, MetricFire легко настроить и интегрировать с вашим сервером MySQL. После подключения MetricFire выполняет всю работу по сбору и хранению данных временных рядов, предоставляя вам настраиваемую визуализацию/отчетность, упреждающие оповещения и полностью управляемую поддержку.
Одной ключевой функцией MetricFire, упрощающей мониторинг MySQL, является встроенная поддержка Hosted Graphite Agent (HG-Agent). Hosted Graphite Agent — это приложение для мониторинга, созданное на основе инструмента сбора метрик Diamond и диспетчера процессов Supervisor. Для запуска и работы требуется только процесс быстрой установки, а затем он автоматически отслеживает сервер, на котором работает, без необходимости дополнительной настройки или настройки.После установки HG-Agent собирает системные метрики и публикует их в Hosted Graphite, где хранятся, обрабатываются и визуализируются данные временных рядов. С клиентом MetricFire Hosted Graphite Agent установка и настройка HG-Agent становятся еще быстрее.
Заключение
В этом посте мы рассмотрели основные моменты, которые вам необходимо знать для эффективного мониторинга баз данных MySQL. Мы узнали, какие функции делают MySQL быстрой и надежной СУБД, как измеряется производительность базы данных в MySQL, какие показатели производительности отслеживать и как использовать различные функции и инструменты для мониторинга производительности.
Помня об этих концепциях, вы теперь готовы разработать надежную стратегию мониторинга. Ваш план должен включать выбор правильного инструмента мониторинга, соответствующего вашим требованиям. Объединяя размещенные Prometheus, Graphite и Grafana в полнофункциональной платформе мониторинга, MetricFire может стать подходящим инструментом для ваших потребностей в мониторинге MySQL. Закажите демонстрацию, чтобы узнать больше, или зарегистрируйтесь для получения бесплатной пробной версии, чтобы начать работу с MetricFire уже сегодня.
Похожие сообщения
Как агрегировать ваши показатели с помощью MetricFire
Использование правил агрегации значительно ускоряет процесс выполнения запросов и визуализацию метрик. Решения MetricFire позволяют быстро и легко агрегировать показатели.
Мониторинг показателей производительности системы с помощью Graphite
Наблюдение за показателями производительности системы – очень важный процесс для поддержания системы в рабочем состоянии. Используйте размещенный Graphite от MetricFire и легко отслеживайте свои показатели.
Отслеживайте свои репозитории GitHub с помощью Graphite и Grafana
Важно отслеживать показатели репозитория GitHub, чтобы эффективно управлять процессом разработки программного обеспечения. Это легко и удобно делать с помощью Graphite и Grafana.
MySQL Enterprise Monitor — это корпоративная система мониторинга для MySQL, которая следит за вашими серверами MySQL, уведомляет вас о потенциальных проблемах и проблемах, а также дает рекомендации по их устранению. MySQL Enterprise Monitor может отслеживать все виды конфигураций, от одного сервера MySQL, важного для вашего бизнеса, до огромной фермы серверов MySQL, обеспечивающих работу загруженного веб-сайта.
Компоненты MySQL Enterprise Monitor могут быть установлены в различных конфигурациях в зависимости от вашей базы данных и топологии сети, чтобы предоставить вам наилучшее сочетание надежных и оперативных данных мониторинга с минимальной нагрузкой на компьютеры сервера баз данных. Типичная установка MySQL Enterprise Monitor состоит из:
Один или несколько серверов MySQL для мониторинга. MySQL Enterprise Monitor может отслеживать как Community, так и Enterprise выпуски серверов MySQL.
Агент MySQL Enterprise Monitor для каждого отслеживаемого хоста.
Единый MySQL Enterprise Service Manager, который собирает информацию от агентов и предоставляет пользовательский интерфейс для собранных данных.
MySQL Enterprise Monitor предназначен для наблюдения за одним или несколькими серверами MySQL. Информация мониторинга собирается с помощью агента MySQL Enterprise Monitor Agent. Агент связывается с хостами и серверами MySQL, которые он отслеживает, собирая переменные, информацию о состоянии и работоспособности и отправляя эту информацию в MySQL Enterprise Service Manager.
Информация, собранная агентом о каждом сервере и хосте MySQL, которые вы отслеживаете, отправляется в MySQL Enterprise Service Manager. Этот сервер сопоставляет всю информацию от агентов. Сопоставляя информацию, отправленную агентами, MySQL Enterprise Service Manager постоянно проверяет собранные данные, сравнивая состояние сервера с разумными значениями. При достижении пороговых значений сервер может инициировать событие (включая сигнал тревоги и уведомление), чтобы выделить потенциальную проблему, такую как нехватка памяти, высокая загрузка ЦП или более сложные условия, такие как недостаточный размер буфера и информация о состоянии. Мы называем каждый тест с соответствующим пороговым значением правилом .
Эти правила, а также сигналы тревоги и уведомления известны как MySQL Enterprise Advisors . Советники составляют важную часть MySQL Enterprise Service Manager, поскольку они предоставляют предупреждающую информацию и советы по устранению потенциальных проблем.
Менеджер служб MySQL Enterprise включает в себя веб-сервер, и вы взаимодействуете с ним через любой веб-браузер. Этот интерфейс, пользовательский интерфейс MySQL Enterprise Monitor, отображает всю информацию, собранную агентами, и позволяет просматривать все ваши серверы и их текущий статус как группы или по отдельности. Вы контролируете и настраиваете все аспекты службы с помощью пользовательского интерфейса MySQL Enterprise Monitor.
Информация, предоставляемая процессами агента MySQL Enterprise Monitor, также включает статистическую информацию и информацию о запросах, которую вы можете просмотреть в виде графиков. Например, вы можете просматривать такие аспекты, как загрузка сервера, количество запросов или информацию об использовании индекса в виде графика с течением времени.График позволяет точно определить проблемы или потенциальные проблемы на вашем сервере, а также может помочь диагностировать влияние базы данных или внешних проблем (таких как сбой внешней системы или сети) путем изучения данных за определенный интервал времени.
Агент MySQL Enterprise Monitor также можно настроить для сбора подробной информации о запросах, выполняемых на вашем сервере, включая количество строк и время выполнения каждого запроса. Вы можете сопоставить подробные данные запроса с графической информацией, чтобы определить, какие запросы выполнялись, когда вы столкнулись с особенно высокой нагрузкой, индексом или другой проблемой. Данные запроса поддерживаются системой Query Analyzer, и данные могут быть представлены по-разному в зависимости от ваших потребностей.
Развитие операций MySQL требует понимания того, как работает MySQL. Хороший инструмент мониторинга предупреждает о проблемах до того, как они повлияют на конечных пользователей, и помогает сократить среднее время восстановления после возникновения инцидентов. Но выбрать решение для мониторинга базы данных может быть сложно из-за огромного количества доступных решений, каждое из которых имеет свои плюсы и минусы.
В этой записи блога я рассмотрю некоторые из лучших доступных инструментов мониторинга MySQL, которые могут помочь измерить и улучшить производительность базы данных.
Зачем отслеживать производительность базы данных MySQL
Если ваша клиентская база растет или у вас часто возникают проблемы с производительностью при развертывании MySQL, вам нужен инструмент для мониторинга базы данных.
Рисунок 1. Мониторинг MySQL с помощью сематекста
Это недорогое решение, обеспечивающее компаниям высокую рентабельность инвестиций. Метрики не только позволяют определить работоспособность базы данных MySQL, но и помогают предотвратить проблемы с производительностью.
Инструменты мониторинга MySQL достигают этого с помощью низкоуровневых системных показателей, которые предлагают обзор вашего развертывания. Хороший инструмент мониторинга также будет отправлять оповещения, когда показатели отклоняются от стабильного состояния, чтобы вы могли быстро вмешаться и избежать возможных сбоев или других проблем, влияющих на клиентов.
Это особенно важно для MySQL. Поскольку базы данных часто являются центром большинства систем, MySQL часто становится узким местом для других служб. Например, ваши службы могут иметь утечку соединений с базой данных. В таких случаях диаграммы MySQL помогают определить причину, показывая, когда возникла проблема.
Во многих случаях сервис, над которым работала моя команда, начинал выдавать коды ответов 5XX. Однако, когда мониторинг доступен, легко определить, возникла ли проблема в базе данных. Если база данных была неработоспособной, моя команда знала, что именно на этом нам нужно сосредоточить свои усилия. Если, с другой стороны, база данных была в порядке, мы знали, что нужно искать в другом месте. Независимо от причины, инструменты мониторинга в нашем распоряжении значительно сокращают среднее время восстановления и возвращают систему в работоспособное состояние.
Теперь, когда мы выяснили, почему мониторинг производительности MySQL так важен, давайте рассмотрим, как это работает на самом деле.
Как работает мониторинг
Инструменты мониторинга MySQL регулярно запрашивают статистику производительности MySQL. Каждый ответ содержит информацию о системе MySQL. Затем эта информация преобразуется в метрики и передается в решение для мониторинга, которое позволяет вам визуализировать и настраивать оповещения всякий раз, когда они отклоняются от своего нормального состояния.
Такие решения для мониторинга собирают метрики из схемы производительности MySQL, которая содержит метаданные об экземпляре MySQL — все, от запросов и ошибок до низкоуровневых метрик хранилища. Поскольку схема производительности является источником метрик для большинства инструментов, большинство этих инструментов предлагают очень похожую видимость. Функции, возможности и пользовательский интерфейс отличают их друг от друга.
Вы никогда не должны упускать из виду UX и возможности оповещения вашего инструмента. Неважно, насколько функционален инструмент; если пользовательский опыт болезненный, внедрение будет тяжелой битвой. В прошлом я работал как минимум с шестью различными инструментами для мониторинга фигуры, которые могли обеспечить невероятную видимость. Но UX был настолько плох, что я отказался от каждого из них.
Также важно помнить, что любой инструмент мониторинга, который вы используете, потребует от вас создания пользователя MySQL с достаточными разрешениями для запроса системной статистики. После настройки пользователя для большинства решений потребуется настроить агент с учетными данными.
Далее рассмотрим возможности мониторинга MySQL.
Возможности мониторинга MySQL
Мониторинг базы данных MySQL позволяет составить представление о производительности системы. Следующие категории статистики необходимы для определения работоспособности MySQL:
Рисунок 2. Панель мониторинга Sematext MySQL
Рисунок 3. Мониторинг MySQL в Sematext
Рисунок 4. Мониторинг MySQL в сематексте
Планирование емкости базы данных
Вы можете использовать метрики MySQL для определения оптимального размера базы данных. Планирование емкости требует, чтобы вы выбрали, сколько памяти, процессора и диска предоставить MySQL. Выбор слишком маленького размера увеличивает ваши шансы перегрузить MySQL и негативно повлиять на ваших конечных пользователей; выберите слишком большой размер, и вы в конечном итоге раскошелитесь на малоиспользуемый экземпляр.
Таким образом, размер представляет собой спектр между:
При работе с системами, если я вижу развертывание базы данных с избыточным выделением ресурсов, с реальными данными в моем распоряжении, легко обосновать необходимость уменьшения размера экземпляра и в результате сэкономить деньги моей компании. Таким образом, мониторинг баз данных упрощает доступ к данным и позволяет вашим инженерам принимать обоснованные решения.
Мониторинг во время инцидентов
Вы неизбежно столкнетесь с проблемами, которые повлияют на вашу базу данных MySQL. Во время инцидента мониторинг позволяет узнать, что отклонилось от предыдущего стабильного состояния, чтобы обеспечить быстрое разрешение. Это, конечно, необходимо для смягчения ущерба и воздействия на клиентов.
Методология мониторинга четырех золотых сигналов Google включает:
Во время инцидента вы должны быть в состоянии ответить на эти четыре вопроса. Каждый из инструментов мониторинга MySQL, описанных ниже, предоставляет метрики, необходимые для реагирования на инциденты. Отсутствие метрик во время инцидента похоже на полет вслепую. Вот почему самое первое, что я делаю при работе с новыми системами, — ввожу мониторинг.
6 лучших инструментов для мониторинга баз данных MySQL
Теперь, когда вы знаете, как работает мониторинг и какие показатели отслеживать, следующим шагом будет определение подходящего решения. Чтобы помочь вам принять решение, я протестировал и сравнил самые популярные инструменты мониторинга MySQL. Ниже приведены мои лучшие инструменты:
1. Мониторинг сематекста MySQL
Sematext – это полнофункциональное решение для наблюдения за возможностями мониторинга MySQL. Вы можете использовать его не только для показателей производительности MySQL, но и для журналов MySQL, а также предлагает инструменты мониторинга инфраструктуры для более чем 100 интеграций мониторинга Sematext.
Sematext поддерживает автоматическое обнаружение службы, что позволяет автоматически запускать мониторинг экземпляров MySQL непосредственно через пользовательский интерфейс.
Помимо готовых панелей мониторинга производительности MySQL, сбор любых метрик MySQL, которые не включены по умолчанию, очень прост. Вы просто добавляете его в эти файлы YAML агента с открытым исходным кодом, и все готово. Исходный код агента мониторинга также является открытым.
Возможности мониторинга
-
из коробки вместе с рядом системных метрик.
Цены
Цена составляет 25 долларов США в месяц за сервер/экземпляр MySQL.
2. Инструмент мониторинга и управления Percona (PMM)
PMM – это набор инструментов для мониторинга с открытым исходным кодом, созданный на основе экосистемы Prometheus. Он предоставляет готовые информационные панели, которые помогут вам понять производительность вашей системы MySQL. PMM использует Prometheus с помощью инструмента MySQLD Exporter (рассмотренного позже) для извлечения метрик MySQL. Mysqld_exporter требует доступа для запроса ваших экземпляров MySQL.
Возможности мониторинга
Цены
PMM – это бесплатный набор инструментов с открытым исходным кодом. Затраты на использование коннекторов ложатся на вас и вашу команду.
3. Анализатор VividCortex MySQL
Рисунок 7. Анализатор VividCortex MySQL (Источник: VividCortex)
VividCortex — это SaaS-решение для мониторинга, которое собирает метрики с помощью агента. Агент, которому требуется доступ к таблицам статистики производительности MySQL, отправляет эти показатели непосредственно в VividCortex.
VividCortex подскажет, какие показатели следует отслеживать. Как и PMM, VividCortex предоставляет готовые информационные панели для выявления проблем с производительностью при развертывании MySQL. Но он делает еще один шаг вперед, создавая «события» вокруг важных состояний мониторинга. Например, если вы приближаетесь к максимальному количеству разрешенных подключений к MySQL, это вызовет событие. Такой подход устраняет неопределенность в отношении того, какие показатели важно отслеживать.
Возможности мониторинга
Цены
Информация о ценах не является общедоступной и доступна только по запросу.
4. Монитор предприятия MySQL
Рис. 8. Анализ запросов MySQL Enterprise Monitor (Источник: MySQL Enterprise Monitor)
MySQL Enterprise Monitor (MEM) — официально поддерживаемый Oracle инструмент мониторинга MySQL. Как и другие решения, упомянутые здесь, MEM в значительной степени зависит от схемы производительности MySQL для получения метрик.
Возможности мониторинга
Цены
При цене 5000 долларов в год за сервер MEM, безусловно, является одним из самых дорогих инструментов мониторинга. Кроме того, он доступен только по подписке на поддержку MySQL, и для доступа к нему необходимо приобрести полную поддержку.
5. Датадог MySQL
Рисунок 9. Панель управления Datadog MySQL (источник: Datadog)
Datadog — это облачное решение для мониторинга, доступное в виде нескольких модулей. Мониторинг MySQL является частью их службы APM. Их агент интеграции MySQL опрашивает вашу схему производительности MySQL и выдает метрики, которые затем генерируются и отображаются на информационных панелях Datadog.
Возможности мониторинга
Цены
Datadog стоит 18 долларов США в месяц за экземпляр MySQL.
6. Prometheus и MySQLD Exporter
Рисунок 10. Информационная панель системы MySQL Grafana (Источник: панель мониторинга MySQL Grafana)
Prometheus – это инструмент мониторинга с открытым исходным кодом, созданный на основе внутреннего решения Google для мониторинга. Он чрезвычайно популярен, с более чем 33 000 звезд на GitHub. Этот монитор базы данных требует запуска службы MySQLD Exporter, которая запрашивает у MySQL статистику производительности. Также требуется запуск службы Prometheus и отдельного инструмента визуализации, такого как Grafana.
Возможности мониторинга
Цены
И Prometheus, и MySQLD Exporter бесплатны и имеют открытый исходный код. Вам нужно платить только за ресурсы и людей, необходимых для их запуска.
Как правильно выбрать инструмент мониторинга для вашего случая использования
Выбирая средство мониторинга производительности MySQL, следует учитывать следующее:
Все решения, которые я рассмотрел сегодня, должны предоставить вам достаточно информации, чтобы определить, исправна ли ваша база данных MySQL.
Заключение
Поскольку такие базы данных, как MySQL, лежат в основе большинства приложений, крайне важно обеспечить видимость вашего развертывания MySQL. Решение для мониторинга помогает определить, становится ли ваша MySQL неработоспособной, поэтому вы не узнаете от своих клиентов, что ваша база данных не работает.
Все вышеперечисленные инструменты мониторинга MySQL предоставляют метрики, которые позволяют вам понять клиентов MySQL (сколько, как долго, результаты и т. д.) и внутреннее состояние MySQL (буферы, потоки, страницы и т. д.). Но независимо от того, какого поставщика вы выберете, переход от небольших метрик или их полного отсутствия к использованию одного из этих инструментов обязательно ускорит ваши операции с MySQL.
Вас также может заинтересовать:
Биография автора
Дэнни Микан
Дэнни работает с реляционными базами данных более 10 лет. В настоящее время он работает на auth0, поддерживая работу их инфраструктуры данных. Он регулярно проводит аудит различных систем баз данных и решений для мониторинга.
MySQL – это мощная и надежная система управления базами данных с открытым исходным кодом, которая предлагает помощь тем компаниям и отраслям, которым нужна помощь в запуске нескольких отдельных приложений, таких как системы хранения ERP и веб-сайты.
СУБД (системы управления базами данных), такие как MySQL, являются важным ресурсом для каждой организации. Это связано с тем, что он выполняет множество жизненно важных задач, помогая приложению работать без сбоев. Это важно, потому что инструменты MySQL гарантируют, что ваша СУБД находится в работоспособном состоянии 24/7.
В этом руководстве перечислены лучшие инструменты управления MySQL и мониторинга производительности, которые помогут вам подключить каждый из ваших SQL-серверов, а также выполнить точную и плавную настройку их скорости и производительности.
-
Система SaaS, которая позволяет отслеживать несколько баз данных и помогает найти основную причину проблем с производительностью. В настоящее время он предлагает бесплатную пробную версию для новых пользователей. Система мониторинга для баз данных MySQL, которая также предлагает средства диагностики. Работает на Windows, Windows Server и Linux. Облачная система мониторинга MySQL, которая выполняет запросы внутри базы данных, чтобы следить за размерами таблиц и количеством объектов.
Лучшие инструменты MySQL
Ниже приведены лучшие инструменты управления и повышения производительности MySQL, обладающие огромными преимуществами.
1. Монитор производительности базы данных SolarWinds
Монитор производительности базы данных SolarWinds — это, по сути, система SaaS, которая отслеживает несколько СУБД. Удобство достигается за счет интеграции мониторов с определенными СУБД.
Версия этого конкретного монитора для MySQL обеспечивает последовательный мониторинг наряду с настройкой производительности. Он также имеет поддержку запросов. Присутствующий в нем монитор оценивает и вычисляет производительность по каждому запросу.
Немногие показатели, которые подлежат отслеживанию,
Монитор производительности базы данных SolarWinds также проверяет каждую службу, которая поддерживает базу данных MySQL. Наряду с отслеживанием проблем с конфигурацией базы данных, таких как использование памяти, загрузка ЦП, размеры таблиц, действия ввода-вывода и доступность ЦП, он также содержит статусы.
В настоящее время SolarWinds предоставляет бесплатную пробную версию на 14 дней для проверки ее функциональности.
2. Idera SQL Diagnostic Manager для MySQL – БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ
Idera SQL Diagnostic Manager для MySQL предлагает средства мониторинга и анализа базы данных, которые могут помочь повысить скорость работы базы данных, предлагая улучшения запросов и новые или измененные объекты базы данных. Эта служба также может собирать, хранить и управлять системными журналами баз данных. Эти данные можно вызывать для оценки производительности.
Система Idera показывает выполнение запроса SQL и использование ресурсов в базе данных MySQL по мере выполнения запроса. Это полезный сервис для обнаружения того, какие обстоятельства вызывают слишком долгое выполнение запросов. Инструмент диагностики позволяет определить, нужно ли изменить запрос или добавить объекты, например индексы, в базу данных для повышения производительности.
Этот инструмент также обеспечивает постоянный мониторинг экземпляров базы данных. Монитор будет следить за автоматизированными процессами администрирования базы данных, такими как резервное копирование или репликация. Если монитор предсказывает, что системных ресурсов не хватает, он создает предупреждение.
Диспетчер диагностики SQL для MySQL устанавливается в Windows, Windows Server и Linux. Помимо мониторинга баз данных MySQL, эта служба может контролировать базы данных MariaDB, Aurora, Azure Database для MySQL, Amazon RDS, Google Cloud SQL для MySQL и Oracle Cloud MySQL Cloud Service. Этот пакет доступен для 14-дневной бесплатной пробной версии.
3. Мониторинг Datadog MySQL – БЕСПЛАТНАЯ ПРОБНАЯ ВЕРСИЯ
Datadog — это прежде всего облачная служба управления системой, доступная в нескольких модулях. Мониторинг MySQL включен в сервис Datadog APM. Это популярный монитор приложений, который можно ориентировать с помощью подключаемых модулей конкретного поставщика, известных как «интеграции».
Этот конкретный монитор последовательно проверяет огромное количество статусов базы данных. К ним относятся буферное пространство, использование табличного пространства и дисковая активность.
Помимо этого, инструмент мониторинга MySQL дополнительно выполняет запросы внутри базы данных, чтобы следить за размерами таблиц и количеством объектов. Эти тесты выполняются агентом Datadog, который устанавливается в Linux, macOS или Windows. Тем не менее, уточнение собранных данных выполняется на серверах Datadog.
Консоль средства мониторинга MySQL слишком размещена в облаке. Это делается для того, чтобы воспользоваться его доступом из любого места через любой стандартный браузер. На панели инструментов текущие статусы отображаются в виде привлекательных графиков, а также выделяются условия, которые ступили в опасную зону выполнения.
В настоящее время Datadog предоставляет бесплатную пробную версию на 14 дней для проверки своих функций.
4. Мониторинг сематекста MySQL
Одной из более чем 100 интеграций мониторинга Sematext является мониторинг MySQL. Следовательно, вы можете использовать Sematext не только для журналов MySQL, но и для показателей производительности MySQL. Фактически, вы можете использовать его и для мониторинга другой инфраструктуры. Однако, если вы добавите к нему агент, он станет открытым исходным кодом.
Это дает множество преимуществ. Прежде всего, это очень легко настроить. Он доступен как SaaS, и вам не нужно ничем управлять. Это часть платформы мониторинга с полным стеком, поэтому легко сопоставить производительность MySQL с событиями, метриками и журналами из нескольких других фрагментов стека приложений и инфраструктуры.
И последнее, но не менее важное: он обладает готовыми огромными диаграммами и информационными панелями, а также правилами оповещения.
В настоящее время Sematext предоставляет бесплатную пробную версию на 14 дней.
5. Инструмент мониторинга и управления Percona (PMM)
Этот тип инструментов представляет собой набор инструментов для мониторинга с открытым исходным кодом, собранный в экосистеме Prometheus. Он предлагает готовую инструментальную панель для анализа производительности вашей системы MySQL.
Возможности мониторинга Percona Monitoring and Management Tool:
Помимо этого, Percona Monitoring and Management Tool предлагает огромные преимущества. Его очень легко настроить и использовать. Он владеет полным всеобъемлющим руководством, которое поможет вам легко получить к нему доступ. Лучшее преимущество заключается в том, что он отображает готовые панели мониторинга.
Поскольку Percona Monitoring and Management Tool — это бесплатный набор с открытым исходным кодом, общая стоимость его использования невелика.
Вы можете посмотреть демонстрацию инструмента мониторинга Percona в реальном времени.
6. Инструмент MySQL Monitor от Monyog
Инструмент MySQL Monitor от Monyog — это мощный инструмент, который предоставляет вам доступ к отслеживанию каждой мелочи, происходящей в вашей базе данных MySQL, в режиме реального времени.
Этот инструмент мгновенно распознает источник непредвиденного всплеска в любой из баз данных MySQL. Наряду с этим, это позволяет обнаруживать любые ошибки или проблемы и исправлять их до того, как они каким-либо образом повлияют на пользователей. Он отслеживает несколько показателей, что позволяет без проблем определить основную причину проблем с работой.
Инструмент MySQL Monitor от Monyog также позволяет отслеживать и различать несколько версий файлов конфигурации. Сокращая нежелательное время использования ЦП, он отправляет вам уведомления через ловушки SNMP, почту, системный журнал, приложения Slack и Pagerduty.
Он владеет расширенной панелью мониторинга, которая существует в аналогичной панели окна и позволяет просматривать несколько показателей с помощью CloudWatch API, RDS API, RST API.
Демонстрируя репликацию ранжирования серверов, он имеет преимущество переключения на табличное представление из графического представления в любое время. Кроме того, вы даже можете персонализировать и настраивать диаграммы, которые наилучшим образом соответствуют вашим потребностям. Инструмент MySQL Monitor от Monyog безопасен и защищен.
Профессиональные функции, которые он отображает,
Вы можете загрузить 14-дневную пробную версию Monyog и проверить, что это программное обеспечение может сделать для вас.
7. Мощные инструменты SQL
Мощные инструменты SQL утверждают, что они обеспечивают «нулевое влияние на мониторинг базы данных». На самом деле, это обычный, легкий и удивительный инструмент, который предоставляет пользователям общее представление о производительности их базы данных. Несмотря на ясность, которую он обеспечивает, он также предоставляет широкие возможности.
Анализ SQL и текст времени отклика конечного пользователя позволяют отслеживать все действия SQL. Эти инструменты позволяют определить базовую производительность каждого оператора SQL.
Наряду с этой функцией инструменты SQL Power обеспечивают регистрацию данных об отправленных двойках и байтах, времени отклика. Он имеет широкий набор показателей, в том числе
Подводя итог, можно сказать, что инструменты SQL Power предоставляют отличные функции безопасности, которые могут остановить внедрение SQL, фишинговые атаки по электронной почте, атаки DevOps и т. д. Он информирует вас до любых инцидентов, которые могут нарушить вашу безопасность.
Чтобы запросить бесплатную пробную заправку, перейдите по ссылке.
8. Анализатор VividCortex MySQL
VividCortex MySQL Analyzer информирует вас о показателях, которые необходимо отслеживать. Подобно PMM (Percona Monitoring and Management Tool), VividCortex предлагает готовые информационные панели для выявления и выявления проблем с производительностью при развертывании MySQL.
Однако он рассматривает это как продвинутый шаг, + выпуская «события» во всех важных состояниях мониторинга.
Например, если вы приближаетесь к максимально допустимому количеству подключений к MySQL, анализатор VividCortex MySQL генерирует событие.
Эта инициатива стирает неопределенность в отношении того, за кем совершенно необходимо следить.
Возможности мониторинга VividCortex MySQL Analyzer включают:
Помимо этого, у этого инструмента есть много преимуществ. Во-первых, его очень легко настроить. Во-вторых, VividCortex MySQL Analyzer требует обычной и простой установки агентом и устраняет требования к размещению метрической инфраструктуры.
Однако информация о ценах на VividCortex MySQL Analyzer не является общедоступной, но может быть известна по запросу.
Вы можете начать бесплатную 14-дневную пробную версию, чтобы протестировать VividCortex.
Выбор клиента MySQL
Программное обеспечение и инструменты для мониторинга MySQL имеют решающее значение для мониторинга нескольких различных показателей баз данных MySQL. Это необходимо, чтобы убедиться, что он остается в работоспособном состоянии.
Поскольку MySQL является критически важным аналитическим ресурсом, помогающим функционировать многим приложениям, наличие специального инструмента, который отслеживает вашу базу данных MySQL, может значительно снизить общую нагрузку на администраторов БД.
С помощью таких баз данных, как MySQL, в основе большинства приложений важно обеспечить видимость при развертывании MySQL. Решение для мониторинга поможет вам, распознав и выявив состояние MySQL. Это дает вам хорошее представление о состоянии вашего MySQL, помогая вам предотвратить простои.
Читайте также: