Сообщество - Postgres DBA

Postgres DBA

157 постов 27 подписчиков

Популярные теги в сообществе:

Корреляционный анализ ожиданий СУБД PostgreSQL - продолжение

Взято с основного технического канала Postgres DBA ( возможны правки и дополнения в исходной статье ).

Хирург и DBA это холодная голова и горячее сердце.

Хирург и DBA это холодная голова и горячее сердце.

Начало :

Корреляционный анализ ожиданий СУБД PostgreSQL - поиск потенциально проблемных SQL запросов при продуктивной нагрузке .

Продолжение тестирования методологии использования корреляционного анализа для поиска проблемных SQL запросов при продуктивной нагрузке на СУБД .

Постановка задачи:

Проанализировать причины снижения скорости СУБД и найти проблемные запросы:

Дашбоард мониторинга производительности СУБД

Дашбоард мониторинга производительности СУБД

Операционная скорость СУБД - снижается.

Ожидания СУБД - растут.

Метрика относительной доли ожиданий - исключена из анализа.

Словарь терминов , используемых при корреляционном анализе.

Операционная скорость на уровне кластера

Ось X - точка наблюдения Ось Y - значение операционной скорости

Ось X - точка наблюдения Ось Y - значение операционной скорости

Ожидания на уровне кластера

Ось X - точка наблюдения Ось Y - общее количество ожиданий СУБД

Ось X - точка наблюдения Ось Y - общее количество ожиданий СУБД

Ось X - точка наблюдения Ось Y - количество ожиданий типа IO

Ось X - точка наблюдения Ось Y - количество ожиданий типа IO

Ось X - точка наблюдения Ось Y - количество ожиданий типа LWLock

Ось X - точка наблюдения Ось Y - количество ожиданий типа LWLock

Ось X - точка наблюдения Ось Y - количество ожиданий типа IPC

Ось X - точка наблюдения Ось Y - количество ожиданий типа IPC

Корреляционный анализ ожиданий и определение потенциально проблемных SQL запросов

Таблица коэффициентов корреляции

Таблица коэффициентов корреляции

  1. Сильная отрицательная корреляция между скоростью и ожиданиями .

  2. Наиболее сильная положительная корреляция между всеми ожиданиями и ожиданиями типа IPC.

  3. Сильная положительная корреляция между всеми ожиданиями и ожиданиями типа LWLock , IO .

Корреляционный анализ на уровне запросов SQL по ожиданию типа IPC

TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа IPC

TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа IPC

Столбцы таблицы

  • QUERYID : id SQL запроса

  • PGPRO_WR_QUERYID : HEX значение queryid , для использования в отчетах pgpro_pwr.

  • CORRELATION : коэффициент корреляции между ожиданиями типа IPC по всем SQL запросам и ожиданиям типа IPC по конкретному запросу.

  • CALLS : общее количество выполнений запроса за анализируемый период.

  • WAITINGS : Ожидания типа IPC по конкретному запросу.

  • WAITINGS TO CALL : Отношение количество ожиданий к количествe выполнений. Среднее количество ожидания за одно выполнение.

  • WAITINGS PCT : Относительная доля (промилле) количества ожиданий типа IPC для данного SQL запроса в общем количества ожиданий типа IPC по всем запросам.

Таблица отсортирована по столбцам "WAITINGS PCT" DESC , "WAITINGS TO CALL" DESC , "CORRELATION" DESC .

Потенциально проблемный запрос - 3985919093425059746

История выполнений и ожиданий запроса 3985919093425059746

История выполнений и ожиданий запроса 3985919093425059746

События ожидания:

  • BgWorkerShutdown Ожидание завершения фонового рабочего процесса.

  • ParallelFinish Ожидание завершения вычислений параллельными рабочими процессами.

  • ExecuteGather Ожидание активности дочернего процесса при выполнении узла плана Gather.

Корреляционный анализ на уровне запросов SQL по ожиданию типа LWLock

TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа LWLock.

TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа LWLock.

Столбцы таблицы

  • QUERYID : id SQL запроса

  • PGPRO_WR_QUERYID : HEX значение queryid , для использования в отчетах pgpro_pwr.

  • CORRELATION : коэффициент корреляции между ожиданиями типа LWLock по всем SQL запросам и ожиданиям типа LWLock по конкретному запросу.

  • CALLS : общее количество выполнений запроса за анализируемый период.

  • WAITINGS : Ожидания типа LWLock по конкретному запросу.

  • WAITINGS TO CALL : Отношение количество ожиданий к количествe выполнений. Среднее количество ожидания за одно выполнение.

  • WAITINGS PCT : Относительная доля (промилле) количества ожиданий типа LWLock для данного SQL запроса в общем количества ожиданий типа IPC по всем запросам.

Таблица отсортирована по столбцам "WAITINGS PCT" DESC , "WAITINGS TO CALL" DESC , "CORRELATION" DESC .

Потенциально проблемный запрос - 2092406791392746781

История выполнений и ожиданий запроса 2092406791392746781

История выполнений и ожиданий запроса 2092406791392746781

События ожидания:

  • ParallelHashJoin Ожидание синхронизации рабочих процессов в процессе выполнения узла плана Parallel Hash Join.

Корреляционный анализ на уровне запросов SQL по ожиданию типа IO

TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа IO

TOP-10 таблицы коэффициентов корреляции для SQL запросов с ожиданиями типа IO

Столбцы таблицы

  • QUERYID : id SQL запроса

  • PGPRO_WR_QUERYID : HEX значение queryid , для использования в отчетах pgpro_pwr.

  • CORRELATION : коэффициент корреляции между ожиданиями типа IO по всем SQL запросам и ожиданиям типа IO по конкретному запросу.

  • CALLS : общее количество выполнений запроса за анализируемый период.

  • WAITINGS : Ожидания типа IO по конкретному запросу.

  • WAITINGS TO CALL : Отношение количество ожиданий к количествe выполнений. Среднее количество ожидания за одно выполнение.

  • WAITINGS PCT : Относительная доля (промилле) количества ожиданий типа IO для данного SQL запроса в общем количества ожиданий типа IPC по всем запросам.

Таблица отсортирована по столбцам "WAITINGS PCT" DESC , "WAITINGS TO CALL" DESC , "CORRELATION" DESC .

Потенциально проблемный запрос - 5680299967307342186

История выполнений и ожиданий запроса 5680299967307342186

История выполнений и ожиданий запроса 5680299967307342186

События ожидания:

  • DataFileExtend Ожидание расширения файла данных отношения.

  • DataFileRead Ожидание чтения из файла данных отношения.

Итог

Корреляционный анализ ожиданий СУБД может быть использован для поиска проблемных SQL запросов и первоначального анализа проблемы и путей оптимизации SQL запросов.

Показать полностью 14
2

Корреляционный анализ ожиданий СУБД PostgreSQL - поиск проблемных SQL запросов при продуктивной нагрузке

Взято с основного технического канала Postgres DBA ( возможны правки и дополнения в исходной статье ).

Работа DBA в чем то , очень отдаленно, напоминает работу хирурга.

Работа DBA в чем то , очень отдаленно, напоминает работу хирурга.

Постановка задачи

Проанализировать причины снижения скорости СУБД и найти проблемные запросы

Дашбоард мониторинга производительности СУБД

Дашбоард мониторинга производительности СУБД

Операционная скорость СУБД - снижается.

Ожидания СУБД - растут.

Порядок проведения корреляционного анализа

Операционная скорость на уровне кластера

Ось X - точка наблюдения Ось Y - значение операционной скорости

Ось X - точка наблюдения Ось Y - значение операционной скорости

Ожидания на уровне кластера

Ось X - точка наблюдения Ось Y - количество ожиданий СУБД

Ось X - точка наблюдения Ось Y - количество ожиданий СУБД

Корреляционный анализ на уровне кластера

Таблица коэффициентов корреляции

Таблица коэффициентов корреляции

  1. Средняя отрицательная корреляция между операционной скоростью и ожиданиями.

  2. Тип ожидания имеющий наибольшую корреляция с общим количеством ожиданий - IO.

Ось X - точка наблюдения Ось Y - количество ожиданий типа IO

Ось X - точка наблюдения Ось Y - количество ожиданий типа IO

Статистика выполнений и ожиданий по отдельным SQL запросам по типу ожидания IO

Таблица статистических данных выполнения и ожиданий по отдельным запросам.

Таблица статистических данных выполнения и ожиданий по отдельным запросам.

Столбцы таблицы

  • QUERYID : id SQL запроса

  • CORRELATION : коэффициент корреляции между ожиданиями типа IO по всем SQL запросам и ожиданиям типа IO по конкретному запросу.

  • CALLS : общее количество выполнений запроса за анализируемый период.

  • WAITINGS : Ожидания типа IO по конкретному запросу.

  • WAITINGS TO CALL : Отношение количество ожиданий к количество выполнений. Среднее количество ожидания за одно выполнение.

Таблица отсортирована по столбцам QUERYID / WAITINGS TO CALL .

Статистика выполнений и ожиданий по выбранным SQL-запросам

-7843470278038126227

Статистика выполнений и ожиданий для queryid =-7843470278038126227

Статистика выполнений и ожиданий для queryid =-7843470278038126227

События ожидания:

  • DataFilePrefetch: Ожидание асинхронной предвыборки из файла данных отношения.

  • DataFileRead : Ожидание чтения из файла данных отношения.

  • DataFileWrite : Ожидание записи в файл данных отношения.

  • WALSync : Ожидание помещения файла WAL в надёжное хранилище.

  • WALWrite : Ожидание записи в файл WAL.

Результат анализа по запросу -7843470278038126227:

Выполнение процедуры ANALYZE во время продуктивной нагрузки на СУБД приводит к ожиданиям. Необходимо пересмотреть порядок проведения регламентных работ на СУБД.

-8198400089192679786

Статистика выполнений и ожиданий для queryid =-8198400089192679786

Статистика выполнений и ожиданий для queryid =-8198400089192679786

События ожидания:

  • DataFileRead : Ожидание чтения из файла данных отношения.

Результат анализа по запросу -8198400089192679786

Необходимо провести анализ плана выполнения с целью снижения операций дискового чтения.

Итог

Использование корреляционного анализа позволяет определить степень влияния потенциально проблемных SQL запросов на общую скорость и ожидания СУБД.

Показать полностью 9

Анализ или Синтез ?

Если предположение о эмерджентности СУБД окажется верным , то синтетические методы оптимизации производительности SQL могут быть неэффективными .

Причина

Влияние части системы, на систему в целом , может быть несущественным и несоразмерным затраченным ресурсам.

Анализ или Синтез ?

Корреляционный анализ ожиданий СУБД при продуктивной нагрузке. Решение проблемы эмерджентности

Взято с основного технического канала Postgres DBA

Для быстрой работы системы - каждая отдельная часть должна быть настроена идеально.

Для быстрой работы системы - каждая отдельная часть должна быть настроена идеально.

Словарь терминов

Постановка проблемы эмерджентности СУБД

Решение проблемы

Для решения проблемы эмерджентности рассмотрим практический пример анализа производительности СУБД под продуктивной нагрузкой.

Операционная скорость и скользящая корреляция на уровне СУБД

Ось X - точка наблюдения . Ось Y - операционная скорость и скользящая медиана скорости и ожиданий

Ось X - точка наблюдения . Ось Y - операционная скорость и скользящая медиана скорости и ожиданий

Анализ графика

  1. Имеется снижение производительности

  2. Скользящая корреляция постоянно в положительной зоне

Т.е. малым значениям операционной скорости соответствуют малые значения ожиданий.

Снижения производительности нет ?

Корреляционный анализ на уровне баз данных

Для корректного анализа производительности , необходимо анализировать корреляцию между операционной скоростью и ожиданиями не на уровне СУБД, а на уровне отдельных баз данных.

В основе остается та же идея

Основная гипотеза корреляционного анализа ожиданий СУБД

Новые метрики производительности СУБД

1. Относительная доля(%) баз данных, имеющих отрицательную корреляцию между операционной скоростью и ожиданиями.

2. Относительная доля(%) баз данных, имеющих среднюю и сильную отрицательную корреляцию между операционной скоростью и ожиданиями.

Если теперь посмотреть значение данных метрик, за тот же период наблюдения, появляются совершенно новые детали для начала анализа.

Ось X - точка наблюдения. Ось Y - значение Метрики 1 и 2.

Ось X - точка наблюдения. Ось Y - значение Метрики 1 и 2.

Результат анализа метрик относительной доли отрицательной корреляции.

  1. Рост количества баз данных имеющих отрицательную корреляцию между скоростью и ожиданиями

  2. Рост количества баз данных имеющих среднюю и сильную отрицательную корреляцию между скоростью и ожиданиями

Главный итог использования новых метрик

Имеются базы данных по которым возможно снижение скорости работы , хотя на уровне СУБД снижения не установлено.

Далее , используя полученные данные, уже можно примерить использованную ранее методику, хорошо зарекомендовавшую себя при нагрузочном тестировании.

Корреляционный анализ ожиданий для сценариев нагрузочного тестирования СУБД PostgreSQL.

Корреляционный анализ ожиданий баз данных и выявление SQL запросов вызывающих наибольшее влияние на снижение скорости баз данных.

Таблица коэфициентов корреляции по базам данных.

Таблица коэфициентов корреляции по базам данных.

  • База данных DB-1 - имеет наиболее сильную отрицательную корреляцию.

  • База DB-2 - исключается из дальнейшего анализа. Причина - отсутствие отрицательной корреляции по событию типу ожидания.

Корреляционный анализ по базе данных "DB-1"

Ось X - точка наблюдения. Ось Y - значение операционной скорости

Ось X - точка наблюдения. Ось Y - значение операционной скорости

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-1

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-1

SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO

SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO

Корреляционный анализ по базе данных "DB-3"

Ось X - точка наблюдения. Ось Y - значение операционной скорости

Ось X - точка наблюдения. Ось Y - значение операционной скорости

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-3

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO по базе данных DB-3

SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO

SQL запрос, имеющий наибольшую корреляцию с типом ожидания IO

Корреляционный анализ по базе данных "DB-4"

Ось X - точка наблюдения. Ось Y - значение операционной скорости

Ось X - точка наблюдения. Ось Y - значение операционной скорости

Ось X - точка наблюдения. Ось Y - количество ожиданий типа Extension по базе данных DB-4

Ось X - точка наблюдения. Ось Y - количество ожиданий типа Extension по базе данных DB-4

Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock по базе данных DB-4

Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock по базе данных DB-4

SQL запросs, имеющий наибольшую корреляцию с типами ожидания Extension , LWLock.

SQL запросs, имеющий наибольшую корреляцию с типами ожидания Extension , LWLock.

Итог

  1. Использование корреляционного анализа позволяет выявить SQL выражения потенциально, имеющие влияние на скорость работы базы данных.

  2. Стартовым событием для начала анализа является отрицательная корреляция между операционной скоростью и ожиданиями для отдельной базы данных.

  3. Мониторинг операционной скорости, ожиданий и корреляции между операционной скоростью и ожиданиями на уровне СУБД в целом, при условии разнородного характера нагрузки на отдельный базы данных , входящих в кластер СУБД - не позволяет получить корректную картину для начала анализа.

  4. Для решения проблемы эмерджентности СУБД , необходимо мониторить метрики производительности на уровне отдельных баз данных , а не СУБД в целом.

Показать полностью 13

Мысли вслух , с утра пораньше

❓С точки зрения оптимизации производительности(скорости) СУБД, какой вариант архитектуры будет выгоднее:

1️⃣Один ко многим: Один кластер PostgreSQL - много БД.

2️⃣Один к одному: Много кластеров PostgreSQL, в каждом кластере одна БД.


ℹ️Важно:файловые системы /data, /wal - общие.


Нужны эксперименты . Вряд ли имеет смысл делать предположения.

Является ли СУБД эмерджентной системой ?

Взято с основного технического канала Postgres DBA

В некоторых системах - целое больше, чем сумма его частей.

В некоторых системах - целое больше, чем сумма его частей.

Эмердже́нтность или эмерге́нтность (англиц. от emergent «возникающий, неожиданно появляющийся»)[1] в теории систем — наличие у системы свойств, не присущих её компонентам по отдельности; несводимость свойств системы к сумме свойств её компонентов.

В связи с началом тестирования комплекса pg_hazel под продуктивной нагрузкой возникает очень важный вопрос:

Можно ли рассчитывать метрики производительности СУБД суммируя значения метрик отдельных баз данных, составляющих кластер PostgreSQL ?

Словарь терминов оперативно-тактического комплекса "PG_HAZEL".

Экспериментальные данные

В качестве источника данных для расчета метрик производительности кластера , используется представление pgpro_stats_totals

G.4.4.2. Представление pgpro_stats_totals

Агрегированная статистика, собранная модулем, выдаётся через представление pgpro_stats_totals.

Операционная скорость СУБД

Ось X - точка наблюдения. Ось Y - операционная скорость СУБД

Ось X - точка наблюдения. Ось Y - операционная скорость СУБД

Количество ожиданий СУБД

Ось X - точка наблюдения. Ось Y - Количество ожиданий по СУБД

Ось X - точка наблюдения. Ось Y - Количество ожиданий по СУБД

Коэффициент корреляции между операционной скоростью и ожиданиями составляет -0,8736.

Вопрос : является ли ситуация существенного снижения операционной скорости и роста ожиданий СУБД - инцидентом деградации производительности СУБД?

Анализ операционной скорости по отдельным базам данных

Для расчета операционной скорости по отдельному SQL выражению используется представления pgpro_stats_statements

G.4.4.1. Представление pgpro_stats_statements

Статистика, собираемая модулем, выдаётся через представление с именем pgpro_stats_statements. Это представление содержит отдельные строки для каждой комбинации идентификатора базы данных, идентификатора пользователя и идентификатора запроса

Для расчета операционной скорости по базе данных применяется агрегирование .

Для сокращения анализа, рассмотрим только список баз данных с наиболее коррелированными(близкими) значениями операционной скорости со значениями операционной скорости СУБД .

Ось X - точка наблюдения. Ось Y - операционная скорость СУБД

Ось X - точка наблюдения. Ось Y - операционная скорость СУБД

Таблица значение операционной скорости СУБД и отдельных баз данных.

Таблица значение операционной скорости СУБД и отдельных баз данных.

Для простоты достаточно рассмотреть графики операционной скорости для баз данных по которым количество значений наиболее близко к количеству значений по СУБД в целом - test_db-7 , test_db-6 и test_db-4.

Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-7

Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-7

Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-6

Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-6

Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-4

Ось X - точка наблюдения. Ось Y - операционная скорость БД test_db-4

Вывод по итогам анализа операционной скорости при работе СУБД под продуктивной нагрузкой

График значений операционной скорости для СУБД в целом, очень сильно отличается от графиков значений операционной скорости баз данных входящих в кластер.

Корреляционный анализ на уровне баз данных

Список БД имеющих обратную корреляцию между операционной скоростью и ожиданиями

Список БД имеющих обратную корреляцию между операционной скоростью и ожиданиями

Интересные детали

База данных DB-1 имеет значение коэффициента корреляции между значениями операционной скорости и ожиданиями = -0.3985 , но если рассчитать коэффициент корреляции между операционной скоростью и количеством ожиданий конкретного типа, то все значения положительны.

Если посмотреть график истории ожиданий, становится понятно, почему так происходит.

Ось X - точка наблюдения. Ось Y - значение операционной скорости для БД

Ось X - точка наблюдения. Ось Y - значение операционной скорости для БД

Ось X - точка наблюдения. Ось Y - Общее количество ожиданий для БД

Ось X - точка наблюдения. Ось Y - Общее количество ожиданий для БД

Получается слабая отрицательная корреляция

Однако , если посмотреть графики истории ожиданий по типам ожиданий IO , IPC , LWLock корреляция будет совсем другой :

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO для БД

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IO для БД

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IPC для БД

Ось X - точка наблюдения. Ось Y - количество ожиданий типа IPC для БД

Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock для БД

Ось X - точка наблюдения. Ось Y - количество ожиданий типа LWLock для БД

Вывод

При расчете метрик производительности СУБД как суммы значений метрик производительности по базам данных, входящим в кластер СУБД, возможна ошибка второго рода - анализ инцидента деградации производительности СУБД при отсутствии деградации производительности баз данных.

Необходимо подготовить методику применения корреляционного анализа в условиях продуктивной нагрузки на СУБД.

Таким образом, можно сформулировать гипотезу

Если в состав кластера СУБД входят разнородные базы данных , то СУБД обладает свойством эмерджентности. Нельзя анализировать поведение СУБД в целом. Необходимо анализировать поведение отдельных баз данных.

Показать полностью 14

Тезисы будущего доклада - "Корреляционный анализ ожиданий СУБД PostgreSQL"

Взято с основного технического канала Postgres DBA

Нормальная работа инженера - проанализировать и найти причину возможной проблемы.

Нормальная работа инженера - проанализировать и найти причину возможной проблемы.

Альтернативные варианты названия

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” при использовании корреляционного анализа ожиданий СУБД

Очень разные варианты инфраструктуры и профили нагрузки на СУБД.

Внутренняя структура сервисной БД и подробный алгоритм расчетов.

Постоянные изменения по ходу практического использования.

Наличие “Know-How”.

Показать полностью

Почему математика важна для DBA

Встретил на Хабре интересную статью , да иногда бывает
Индексы в убывающем порядке (DESC) и NULLS FIRST в PostgreSQL

Насторожил один момент - а сколько измерений было проведено в ходе экспериментов?

Меня терзают смутные сомнения, что вывод был сделан на основании единичного результата .
Задал , вопрос автору в комментариях. Хотя , по существующей традиции хабра , на технические комментарии давно уже не отвечают .
Поживём - увидим .

Я пока, точно не рискну делать выводы о влиянии порядка индекса на эффективность выполнения запроса.

Проблема в том, что вывод делается, скорее всего, на основании единичного или малого количества наблюдений и результат может вообще оказаться выбросом .

А , как известно , из ложной посылки - любой вывод должен.

Вот так, игнорирование стандартных математических основ может привести к глубоко ошибочным выводам и ложному пути .

Показать полностью 2
Отличная работа, все прочитано!