Нормальная работа инженера - проанализировать и найти причину возможной проблемы.
Альтернативные варианты названия
1. Статистический анализ производительности СУБД PostgreSQL.
2. Применение методов математический статистики для анализа производительности СУБД PostgreSQL
3. Корреляционный анализ для решения инцидентов производительности СУБД PostgreSQL
Описание контекста
Основная задача администратора баз данных - обеспечить наиболее эффективную работу вверенной ему в сопровождение СУБД.
Для выполнения задачи, одно из основных требований - умение определить текущее состояние и работоспособность СУБД или насколько эффективность СУБД справляется с получаемой нагрузкой обрабатывает информацию и выдает требуемый результат.
Для этого необходимо уметь рассчитывать/сравнивать/анализировать производительность СУБД.
Основная идея
Однако проблема в том, что как выясняется, строгого определения для термина "производительность СУБД" до недавнего времени не существовало. Каждый администратор понимал под производительностью, то, что лично ему нравится:
· количество запросов в секунду
· количество зафиксированных транзакций
· среднее время отклика СУБД
· и даже процент утилизации CPU+RAM
· или некая магия, получаемая если посмотреть на экран на котором десяток другой графиков мониторинга
Так руководствуясь некими рецептами алхимиков, DBA каким-то мистическим образом определить хорошо работает СУБД или плохо.
Ситуацию нужно менять. И на помощь, придет то, что всегда помогает инженерам – математика.
Структура доклада
Зачем нужно считать производительность СУБД
Вопросы, для ответа на которые, требуется рассчитать производительность СУБД в виде метрики:
· Что такое "хорошо" и что такое "плохо" когда вопрос касается производительности СУБД?
· На сколько "лучше" или "хуже" стало СУБД после того как изменили что-то?
· "Мы уперлись в СУБД " – а точно со стороны инфраструктуры и приложения нет проблем и узкое место информационной системы — это СУБД?
Как рассчитать производительность СУБД и какие проблемы возникают
· Известные аномалии расчета метрики производительности.
Рассчитать производительность СУБД в физическом смысле нельзя. Но можно оценить по косвенным показателям, используя метрики оценки производительности СУБД.
Инструменты мат. статистики, используемые при расчетах
Метрики и индикаторы производительности СУБД
· Количество ожиданий СУБД
· Количество ожиданий СУБД по типам ожидания
· Относительная доля ожидания
· Корреляция активных сессий и операционной скорости
· Корреляция операционной скорости и ожиданий
Корреляционный анализ ожиданий СУБД
· Основная гипотеза корреляционного анализа ожиданий СУБД
· Последовательность действий(алгоритм)
Сценарии и анализ результатов нагрузочного тестирования СУБД.
Одного сценария нагрузочного тестирования – недостаточно.
Проблема среднего арифметического при расчёте среднего времени выполнения запроса.
Сценарии нагрузочного тестирования:
· Сценарий №1 – SELECT ONLY
· Сценарий №2 – SELECT + UPDATE (TCP-B)
· Cценарий №3 – INSERT ONY
· Cценарий №3 – HEAVYWEIGHT LOAD CPU
Практические примеры решения инцидентов производительности СУБД с использованием корреляционного анализа
О чем можно будет узнать из доклада
Новые способы и примеры использования математических методов для и оптимизации и анализа производительности СУБД PostgreSQL.
О чем не будет сказано в докладе
“Best practices” при использовании корреляционного анализа ожиданий СУБД
Очень разные варианты инфраструктуры и профили нагрузки на СУБД.
Внутренняя структура сервисной БД и подробный алгоритм расчетов.
Постоянные изменения по ходу практического использования.