✖️ Материал устарел. Методика расчета - изменена ✖️
Эмердже́нтность или эмерге́нтность (англиц. от emergent «возникающий, неожиданно появляющийся»)[1] в теории систем — наличие у системы свойств, не присущих её компонентам по отдельности; несводимость свойств системы к сумме свойств её компонентов.
В связи с началом тестирования комплекса pg_hazel под продуктивной нагрузкой возникает очень важный вопрос:
Можно ли рассчитывать метрики производительности СУБД суммируя значения метрик отдельных баз данных, составляющих кластер PostgreSQL ?
Словарь терминов оперативно-тактического комплекса "PG_HAZEL".
Экспериментальные данные
В качестве источника данных для расчета метрик производительности кластера , используется представление pgpro_stats_totals
G.4.4.2. Представление pgpro_stats_totals
Агрегированная статистика, собранная модулем, выдаётся через представление pgpro_stats_totals.
Операционная скорость СУБД
Количество ожиданий СУБД
Коэффициент корреляции между операционной скоростью и ожиданиями составляет -0,8736.
Вопрос : является ли ситуация существенного снижения операционной скорости и роста ожиданий СУБД - инцидентом деградации производительности СУБД?
Анализ операционной скорости по отдельным базам данных
Для расчета операционной скорости по отдельному SQL выражению используется представления pgpro_stats_statements
G.4.4.1. Представление pgpro_stats_statements
Статистика, собираемая модулем, выдаётся через представление с именем pgpro_stats_statements. Это представление содержит отдельные строки для каждой комбинации идентификатора базы данных, идентификатора пользователя и идентификатора запроса
Для расчета операционной скорости по базе данных применяется агрегирование .
Для сокращения анализа, рассмотрим только список баз данных с наиболее коррелированными(близкими) значениями операционной скорости со значениями операционной скорости СУБД .
Для простоты достаточно рассмотреть графики операционной скорости для баз данных по которым количество значений наиболее близко к количеству значений по СУБД в целом - test_db-7 , test_db-6 и test_db-4.
Вывод по итогам анализа операционной скорости при работе СУБД под продуктивной нагрузкой
График значений операционной скорости для СУБД в целом, очень сильно отличается от графиков значений операционной скорости баз данных входящих в кластер.
Корреляционный анализ на уровне баз данных
Интересные детали
База данных DB-1 имеет значение коэффициента корреляции между значениями операционной скорости и ожиданиями = -0.3985 , но если рассчитать коэффициент корреляции между операционной скоростью и количеством ожиданий конкретного типа, то все значения положительны.
Если посмотреть график истории ожиданий, становится понятно, почему так происходит.
Получается слабая отрицательная корреляция
Однако , если посмотреть графики истории ожиданий по типам ожиданий IO , IPC , LWLock корреляция будет совсем другой :
Таким образом, при анализе производительности СУБД , работающей под продуктивной нагрузкой , необходимо анализировать корреляцию с конкретным типом ожидания, а не корреляцию с суммой всех ожиданий по данной базе данных.
Важное дополнение
Необходимо анализировать не только корреляцию, но и количество случаев наблюдения событий ожидания ( ранее использовался термин "вес").
Вывод
При расчете метрик производительности СУБД как суммы значений метрик производительности по базам данных, входящим в кластер СУБД, возможна ошибка второго рода - анализ инцидента деградации производительности СУБД при отсутствии деградации производительности баз данных.
Необходимо подготовить методику применения корреляционного анализа в условиях продуктивной нагрузки на СУБД.
—————
Updated 14.03.2025
—————
Таким образом, можно сформулировать гипотезу
Если в состав кластера СУБД входят разнородные базы данных , то СУБД обладает свойством эмерджентности. Нельзя анализировать поведение СУБД в целом. Необходимо анализировать поведение отдельных баз данных.
Простейший пример
БД1 - интенсивная читающая нагрузка с периодом изменения нагрузки T1 и функцией операционной скорости F1(t)
БД2 - редкая пишущая нагрузка с периодом изменения нагрузки T2 и функцией операционной скорости F2(t)
БД3 - редкая изменяющаянагрузка с периодом T3 и функцией операционной скорости F3(t)
В зависимости от начальных значений T1, T2, T3 результирующее значение операционной скорости СУБД F(t) = F1(t) + F2(t) + F3(t) может меняться в очень широких диапазонах и иметь как периодический так и случайный характер , учитывая взаимное влияние БД .
Возможные изменения методологии анализа производительности СУБД
- Мониторинг скорости и ожиданий на уровне БД , а не СУБД
- Использование в качестве индикатора для СУБД - значение относительной доли ожиданий, а не значение скользящей корреляции скорости и ожиданий .
Важное следствие
Если предположение о том, что СУБД обладает свойством эмерджентности верно, то следует, что синтетические методы оптимизации производительности СУБД могут оказаться неэффективностыми , потому, что влияние части системы на систему в целом может оказаться незначительным и несоразмерно затраченным ресурсам на анализ и изменение.
Дополнительные материалы по термину "эмерджентность"
Добро пожаловать в эпоху эмерджентности
СТРАТИФИКАЦИЯ ИНФОРМАЦИОННЫХ СИСТЕМ