Эта страница является оригинальной документацией PmaControl. Она сохраняет практичную структуру индекса для работ по оптимизации MySQL, не копируя сторонний контент и не завися от внешнего продукта.
Цель
Страница оценки производительности агрегирует основные сигналы сервера MySQL в одном представлении. Она нужна для приоритизации действий, а не для замены анализа DBA.
Полезные измерения
- Конфигурация: согласованность переменных с памятью, storage и нагрузкой.
- Запросы: вес медленных и частых запросов.
- Схема: индексы, первичные ключи, объем и временные таблицы.
- Стабильность: перезапуски, ошибки соединений, deadlock-и и насыщение threads.
- Емкость: тренды CPU, I/O, QPS, соединений и дискового места.
Пример таблицы
| Ось | Сигнал | Приоритет |
|---|---|---|
| Память | Buffer pool слишком мал или есть swapping | Высокий |
| Запросы | 5 digest-ов потребляют большую часть времени | Высокий |
| Схема | Критичные таблицы без подходящих индексов | Средний-высокий |
| Соединения | Max_used_connections близко к max_connections |
Средний |
Главное
Глобальная оценка полезна только тогда, когда она объяснима. Каждый пункт должен вести к метрике, запросу или проверяемой конфигурации.
Определите объект оценки
Создайте датированную оценку для каждой роли и типичной нагрузки. Зафиксируйте период, свежесть данных, версию, топологию, аппаратные лимиты и бизнес-цель. Для клиентской задержки включайте приложение и прокси. Узел записи, отчётная реплика и резерв имеют разные допустимые нагрузки и риски. Здесь описан метод проверки: таблицы — шаблоны, а не измерения или автоматически рассчитанный балл PmaControl.
SELECT NOW() AS observed_at, @@hostname AS hostname,
VERSION() AS server_version, @@global.read_only AS read_only;
SHOW GLOBAL STATUS WHERE Variable_name IN (
'Uptime', 'Questions', 'Threads_connected', 'Threads_running',
'Connection_errors_max_connections', 'Innodb_log_waits',
'Innodb_buffer_pool_reads', 'Innodb_buffer_pool_read_requests'
);
Составьте оценку на основе свидетельств
| Направление | Свидетельства | Проверяемый вопрос |
|---|---|---|
| Доступность | Реальный путь клиента, перезапуски, текущие ошибки | Может ли нужная служба сейчас выполнять работу? |
| Запросы | Digests, планы, перцентили клиентских запросов | Какая нагрузка расходует бюджет времени? |
| Память и I/O | RSS, давление памяти, задержка чтения/сброса | Ограничивает ли узел полезную производительность? |
| Схема | Критичные таблицы, индексы, рост | Какую стоимость структуры подтверждает план? |
| Восстановление и безопасность | Пробное восстановление, отметка реплики, права, TLS | Приемлемы ли риски потери и доступа? |
Отмечайте отсутствующую, устаревшую или отключённую инструментацию как неизвестную. Отсутствие метрики не даёт зелёный статус или выдуманный ноль. Разделяйте наблюдение, интерпретацию и действие. Доля промахов пула, исторический пик соединений и неиспользуемые индексы требуют контекста нагрузки.
Оцените влияние, срочность и уверенность
- Критический: текущий отказ, скорое заполнение диска, подтверждённый недопустимый риск данных или доступа.
- Высокий: повторные нарушения целей задержки/ошибок или растущая нагрузка с подтверждённой причиной.
- Плановый: измеримые затраты или риск без текущего влияния; назначьте контролируемую проверку.
- Неизвестный: данных недостаточно; назначьте сбор, не объявляя успех.
Сделайте результаты до и после сопоставимыми
| Показатель | Единица и метод |
|---|---|
| Задержка клиента p50/p95/p99 | мс, тот же endpoint и распределение запросов |
| Полезная производительность и ошибки | завершённые операции/с и ошибки/все запросы |
| Стоимость ресурсов и безопасность | CPU %, RSS МиБ, I/O мс, отставание с, одинаковые результаты |
Сохраняйте сопоставимые оборудование, данные, трафик, параллелизм и кеши; отмечайте различия и повторяйте испытания. Счётчикам нужны приращения и проверка сброса. Средние digests — не перцентили запросов. Показывайте улучшения и регрессии вместе, храните исходные свидетельства и оставляйте неизмеренное пустым или неизвестным. Задайте принятие и откат до теста: рост производительности с ростом ошибок не обязательно улучшение.
Завершите цикл записью о находке
Для каждой находки сохраните сервер/запрос, время, ссылку на свидетельство, уверенность, бизнес-влияние, владельца, действие, срок, приёмочный тест и откат. После исправления приложите измеренный результат и оставшиеся ограничения; перепроверьте на пике и следующем полном бизнес-цикле. Не закрывайте находку только из-за изменения настройки или общей оценки.
Продолжение диагностики
- Соберите свидетельства проверкой состояния, схемы и безопасности; проверьте действия через настройку и анализ параметров.