Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Начните с маленькой подводной лодки: устанавливайте бомбы, избавляйтесь от врагов и старайтесь не попадаться на глаза своим плавучим врагам. Вас ждет еще несколько игровых вселенных, много уникальных сюжетов и интересных загадок.

Пикабомбер

Аркады, Пиксельная, 2D

Играть

Топ прошлой недели

  • Rahlkan Rahlkan 1 пост
  • Tannhauser9 Tannhauser9 4 поста
  • alex.carrier alex.carrier 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
2
uBaH.n0Mug0p0B
uBaH.n0Mug0p0B
5 месяцев назад

"Правды нет, есть труд за 3 копейки"⁠⁠

Производительность Труд Стоимость Видео
5
kznalp
kznalp
5 месяцев назад
Postgres DBA
Серия СУБД PostgreSQL

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

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

Корреляционный анализ ожиданий для сценариев нагрузочного тестирования СУБД PostgreSQL Субд, Postgresql, Исследования, Производительность, Корреляция, Анализ данных

Анализировать и сравнивать можно только вычисляемые сущности.

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

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

Database-1

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

Database-2

Тестовая база данных для проведения нагрузочного тестирования .

Нагрузка создается пользовательским сценарием pgbench.

Рост количества подключений pgbench - экспоненциально от 6 до 111.

Сценарии нагрузочного тестирования и результаты экспериментов

Сценарий 1 - "Select Only"

Только читающая нагрузка на тестовую БД .

Сценарий 2 - "Insert Only"

Только пишущая нагрузка на тестовую БД .

Сценарий 3 - "OLTP"

Имитация теста TPC-B . Нагрузка "SELECT + UPDATE" в тестовой БД .

Характерные признаки сценариев нагрузочного тестирования

Сценарий 1 - "Select Only"

Сценарий характеризуется

1. Cильной корреляцией с событиями ожидания:

  • LWLock/LockManager: Ожидание при чтении или изменении информации о «тяжёлых» блокировках.

  • LWLock/ProcArray: Ожидание при обращении к общим структурам данных в рамках процесса (например, при получении снимка или чтении идентификатора транзакции в сеансе).

2. Очень низким относительной долей ожиданий: менее 1%

Сценарий 2 - "Insert Only"

Сценарий характеризуется

1. Очень сильной корреляцией с событиями ожидания:

  • MultiXactOffsetSLRU: Ожидание при обращении к SLRU-кешу данных о смещениях мультитранзакций.

2. Не высокой относительной долей ожиданий: 17-35%

Сценарий 3 - "OLTP"

Сценарий характеризуется

1. Очень сильной корреляцией с событиями ожидания:

  • Lock / transactionid: Ожидание завершения транзакции.

  • Lock / tuple: Ожидание при запросе блокировки для кортежа.

2. Высокой относительной долей ожиданий: 62-95%.

Показать полностью
[моё] Субд Postgresql Исследования Производительность Корреляция Анализ данных
0
kznalp
kznalp
5 месяцев назад
Postgres DBA
Серия СУБД PostgreSQL

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL"⁠⁠

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

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

Классический анализ - разбить проблему на составные части и внимательно изучить.

Продолжение работ по теме

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL".

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

Анализ событий ожиданий СУБД и определение SQL запросов оказывающих наибольшее влияние на производительность БД.

Основное отличие от предыдущей методики анализа производительности.

Корреляционный анализ проводится не по СУБД в целом , а по отдельным базам данных - Database-1 , Database-2.

Статистические показатели производительности Баз Данных.

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Анализ операционной скорости

Деградация производительности Database-2 существенно сильнее .

Ожидания

WAITING RATIO

Относительная доля(%), времени ожиданий от времени работы базы данных.

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Анализ относительной доли ожиданий

Доля ожиданий , при работе Database-2 выше на порядки.

WAIT_EVENT_TYPE (Типы ожиданий)

Database-1

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

Наиболее значимый тип ожидания LWLock

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Database-2

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

Наиболее значимые типы ожиданий IO , Lock , LWLock.

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

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

Анализ типов ожиданий (WAIT_EVENT_TYPE)

Относительная доля ожиданий для Database-1 существенно ниже , чем по Database-2.

Типы ожиданий IO , Lock - отсутствуют при работе Database-1.

Общий корреляционный анализ ожиданий

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

Коэффициенты корреляции


  • SPEED CORR
    : коэффициент корреляции между количеством активных сессий к БД и операционной скоростью.

  • BUFFERPIN CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа Bufferpin.

  • EXTENSION CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа Extension.

  • IO CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа IO.

  • IPC CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа IPC.

  • LOCK CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа Lock.

  • LWLOCK CORR: коэффициент корреляции между операционной скоростью и количеством ожиданий типа LWLock.

Итоги

  1. Корреляция между активными сессиями и операционной скоростью для Database-1 очень слабая => Увеличение нагрузки на БД практически не ведет к снижению производительности БД.

  2. Корреляция между активными сессиями и операционной скоростью для Database-2 очень сильная =>Увеличение нагрузки на БД ведет к заметному снижению производительности БД.

  3. Для Database-1 отсутствует корреляция между операционной скоростью и ожиданиями => Снижение производительности БД не вызвано ожиданиями БД.

  4. Для Database-2 наиболее сильная отрицательная корреляция между операционной скоростью и ожиданиями типа Lock =>Тяжелые блокировки оказывают наибольшее влияние на снижение производительности СУБД.

Корреляционный анализ ожиданий для Database-2

Для проведения корреляционного анализа используется

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

Корреляция между типом ожидания (wait_event_type) и событием ожидания(wait_event)

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

Наиболее коррелированные события ожидания(сильная корреляция):

  1. Lock/extend: Ожидание при расширении отношения.

  2. LWLock/BufferContent: Ожидание при обращении к странице данных в памяти.

Корреляция между событием ожидания(wait_event) и SQL запросами

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

SQL запросы , роли и корреляция с событиями ожиданияSQL запросы , роли и корреляция с событиями ожидания

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

Список SQL запросов

Результат корреляционного анализа для Database-2

Результат корреляционного анализа для Database-2

Пользовательский запрос и события ожидания оказывающий наибольшее влияние на снижение производительности БД.

select custom_test( $1 )

События ожидания, оказывающие наибольшее влияние на снижение производительности БД

Корреляционный анализ ожиданий СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Статистика, Корреляция, Длиннопост

Коэффициенты корреляции между событиями ожидания в БД и SQL запросе.

  1. MultiXactOffsetSLRU: Ожидание при обращении к SLRU-кешу данных о смещениях мультитранзакций.

  2. MultiXactGen: Ожидание при чтении или изменении общего состояния мультитранзакций.

  3. extend: Ожидание при расширении отношения.

  4. BufferContent: Ожидание при обращении к странице данных в памяти.

  5. WALInsert: Ожидание при добавлении записей WAL в буфер в памяти.

  6. ProcArray: Ожидание при обращении к общим структурам данных в рамках процесса (например, при получении снимка или чтении идентификатора транзакции в сеансе).

  7. CheckpointerComm: Ожидание при управлении запросами fsync.

  8. BufferMapping: Ожидание при связывании блока данных с буфером в пуле буферов.

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

  10. LockManager: Ожидание при чтении или изменении информации о «тяжёлых» блокировках.

Итог и практическое применение результатов корреляционного анализа

Для оптимизации и повышению производительности запроса "select custom_test( $1 )" необходимо выявить причины и оптимизировать работу с мультитранзакциями.

Планы на будущее и развитие

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

Показать полностью 15
[моё] Субд Postgresql Производительность Статистика Корреляция Длиннопост
0
kznalp
kznalp
5 месяцев назад
Мнения
Серия IMHO

Мысли вслух - о раскрытии информации⁠⁠

Когда еще в прошлом году начал заниматься темой статистического анализа производительности СУБД , очень удивлялся - почему в интернете нет никакой информации . Куча статей , докладов о оптимизации производительности , но при этом простой вопрос "а что вы понимаете под производительностью и как считаете метрику?" - ставит докладчика в тупик(проверено практически).
Чуть поглубже погрузившись в тему , поначалу даже опасался - ах, конкуренты прочитают, реализуют, перехватят идею , реализуют и выдадут продукт на рынок .
Но, по прошествии времени , понял , что ситуация чуть другая.
1) PostgreSQL это все таки открытая система , знаниями надо делиться. Сегодня ты помог, завтра тебе помогут.
2) Тема статистического анализа производительности СУБД и вообще понятие "производительность СУБД" по большому счету никому и не интересна. На Хабре именно за эти статьи сливали карму , в комментах там в основном ламеры и тролли, за все время на Хабре было 1-2 собеседника , и полезное обсуждение. На дзене комментариев к статьям 0(ноль).
И самое главное , со стороны бизнеса тема "performance engineering" в общем , то не сильно востребована, они просто ресурсами заливают. Для коллег DBA - вся эта статистика, корреляция, дисперсия и разные медианы - тарабарщина какая то - 'а зачем это все надо ", лучше смотреть кучу графиков и лапшу клиенту вешать.

Так, что можно , не переживать - в ближайшее время конкурентов не предвидится. Хотя , с другой стороны скучно - "Ганди умер - поговорить не с кем".

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

Мысли вслух - о раскрытии информации ИМХО, Субд, Postgresql, Производительность
Показать полностью 1
[моё] ИМХО Субд Postgresql Производительность
22
kznalp
kznalp
5 месяцев назад
Postgres DBA
Серия СУБД PostgreSQL

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL"⁠⁠

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

А теперь начинается самое интересно - анализ и поиск закономерностей

Выполненные сценарии нагрузочного тестирования

"OLTP"- нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

"SELECT ONLY" - нагрузочное тестирование СУБД PostgreSQL использованием оперативно-тактического комплекса "PG_HAZEL".

"INSERT ONLY" - нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

"HEAVYWEIGHT" - нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

Результаты нагрузочного тестирования

График операционной скорости СУБД за период

Короткий период медианного сглаживания - синий график.

Долгий период медианного сглаживания - красный график.

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

"OLTP"- нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

"SELECT ONLY" - нагрузочное тестирование СУБД PostgreSQL использованием оперативно-тактического комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

"INSERT ONLY" - нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

"HEAVYWEIGHT" - нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического9 комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

Ключевой момент

  1. Значения операционной скорости после определенного роста нагрузки для сценариев "INSERT ONLY" / "HEAVYWEIGHT".

Корреляция между операционной скоростью и количество сессий в состоянии 'active'

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

"OLTP"- нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

"SELECT ONLY" - нагрузочное тестирование СУБД PostgreSQL использованием оперативно-тактического комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

"INSERT ONLY" - нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

"HEAVYWEIGHT" - нагрузочное тестирование СУБД PostgreSQL с использованием оперативно-тактического комплекса "PG_HAZEL".

Анализ результатов нагрузочного тестирования СУБД PostgreSQL с использованием разных сценариев оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Мониторинг, Анализ данных, Корреляция, Длиннопост

Ключевой момент

  1. График скользящей корреляции для сценариев "SELECT ONLY" / "INSERT ONLY" очень похожи.

  2. График скользящей корреляции для сценария "HEAVYWEIGHT" в противо фазе с графиками "SELECT ONLY" / "INSERT ONLY" после определенной нагрузки.

Показать полностью 9
[моё] Субд Postgresql Производительность Мониторинг Анализ данных Корреляция Длиннопост
1
kznalp
kznalp
5 месяцев назад
Postgres DBA
Серия СУБД PostgreSQL

Сценарий "INSERT ONLY" - корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL"⁠⁠

Сценарий "INSERT ONLY" - корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Корреляция, Мониторинг, Анализ данных, Длиннопост

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

Анализ и определение причины деградации производительности СУБД за заданный период .

Сценарий нагрузки "INSERT ONLY".

Общее описание схемы и метрик производительности

PG_HAZEL - оперативно-тактический комплекс мониторинга производительности СУБД PostgreSQL .

Анализ метрик производительности СУБД.

График операционной скорости СУБД за период

Короткий период медианного сглаживания - синий график.

Долгий период медианного сглаживания - красный график.

Сценарий "INSERT ONLY" - корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Корреляция, Мониторинг, Анализ данных, Длиннопост

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

Отличительная особенность сценария "INSERT ONLY" - резкий скачок операционной скорости. Скорее всего причина - изменение нагрузки на СХД виртуальной машины.

Сессии в состоянии 'active'

Сценарий "INSERT ONLY" - корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Корреляция, Мониторинг, Анализ данных, Длиннопост

Ось X - точка наблюдения. Ось Y - количество активных сессий на точку времени.

Корреляция между операционной скоростью и количество сессий в состоянии 'active'

График скользящей корреляции.

Сценарий "INSERT ONLY" - корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Корреляция, Мониторинг, Анализ данных, Длиннопост

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

Обращает на себя внимание факт непостоянного значения скользящей корреляции, близкой к косинусоиде.

График практически повторяет график скользящей корреляции для сценария "SELECT ONLY"

Сценарий "INSERT ONLY" - корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Корреляция, Мониторинг, Анализ данных, Длиннопост

Сценарий "SELECT ONLY". Ось X - точка наблюдения. Ось Y - значение коэффициента корреляции.

Коэффициент корреляции между операционной скоростью и количеством активных сессий за период наблюдений = 0,868388508671336 .

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

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

Гипотеза

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

Чуть подробнее

Результат корреляционного анализа

Сценарий "INSERT ONLY" - корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Субд, Postgresql, Производительность, Корреляция, Мониторинг, Анализ данных, Длиннопост

Нет деградации производительности СУБД за период проведения теста .

Итог

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

  2. Для сценарий "INSERT ONLY" текущая нагрузка далека от предельной.

Показать полностью 6
[моё] Субд Postgresql Производительность Корреляция Мониторинг Анализ данных Длиннопост
0
kznalp
kznalp
5 месяцев назад
Postgres DBA
Серия СУБД PostgreSQL

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY"⁠⁠

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

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

Анализ и определение причины деградации производительности СУБД за заданный период .

Сценарий нагрузки "SELECT ONLY".

Общее описание схемы и метрик производительности

PG_HAZEL - оперативно-тактический комплекс мониторинга производительности СУБД PostgreSQL .

Анализ метрик производительности СУБД.

График операционной скорости СУБД за период

Короткий период медианного сглаживания - синий график.

Долгий период медианного сглаживания - красный график.

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

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

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

Сессии в состоянии 'active'

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

Ось X - точка наблюдения. Ось Y - количество активных сессий на точку времени.

Корреляция между операционной скоростью и количество сессий в состоянии 'active'

График скользящей корреляции.

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

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

Ключевые точки наблюдения.

  • 1-40: положительная корреляция

  • 41-142: отрицательная корреляция

  • 143-179: положительная корреляция

  • 180-197: отрицательная корреляция

Результат корреляционного анализа операционной скорости и активными сессиями :

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

Ожидания СУБД

Ожидания СУБД

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

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

Отношение времени ожидания к общему времени работы СУБД

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

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

Результат анализа ожиданий СУБД:

  1. Начиная с точки 56 - резкий рост метрик ожиданий СУБД

  2. Количество ожиданий СУБД - очень не велико.

  3. После точки 81 - относительная доля ожиданий снижается. Однако количество ожиданий не уменьшается , операционная скорость снижается.

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

Гипотеза

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

Чуть подробнее

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

Результат корреляционного анализа

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

Результат работы сервисного скрипта

Результат корреляционного анализа

Снижение операционной скорости вызвано повышенной нагрузкой на СУБД и нехваткой CPU. Ожиданий СУБД влияющих на производительность - не выявлено.

Подтверждением нехватки ресурсов СУБД является рост значений benchmark.

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" - сценарий "SELECT ONLY" Субд, Postgresql, Производительность, Мониторинг, Длиннопост

Ось X - точка наблюдения. Ось Y - медианное значение тестового запроса BENCHMARK

Итог

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

Показать полностью 8
[моё] Субд Postgresql Производительность Мониторинг Длиннопост
0
kznalp
kznalp
5 месяцев назад
Postgres DBA
Серия СУБД PostgreSQL

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL"⁠⁠

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

Анализ и определение причины деградации производительности СУБД за заданный период.

Общее описание схемы и метрик производительности

PG_HAZEL - оперативно-тактический комплекс мониторинга производительности СУБД PostgreSQL .

Анализ метрик производительности СУБД.

График операционной скорости СУБД за период

Короткий период медианного сглаживания - синий график.

Долгий период медианного сглаживания - красный график.

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

Как видно из графика - имеется краткосрочная и долгосрочная тенденция снижения производительности СУБД.

Сессии в состоянии 'active'

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

Ось X - точка наблюдения. Ось Y - количество активных сессий на точку времени.

Корреляция между операционной скоростью и количество сессий в состоянии 'active'

График скользящей корреляции.

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

Коэффициент корреляции между операционной скоростью и количеством активных сессий за период наблюдений = -0,993357128393598 .

Ключевые точки наблюдения.

  • 1-19 : коэфaициент близок к 1

  • 23 - отрицательное значение коэффициента корреляции

  • 80 - значение коэффициента корреляции уменьшается(растет по модулю)

Общая интерпретация значений коэффициента корреляции :

  • Очень слабая корреляция: [0 до 0.2]

  • Слабая корреляция: (0.2 до 0.5].

  • ️Средняя корреляция: (0.5 до 0.7] .

  • ️Сильная корреляция: (0.7 до 0.9].

  • ️Очень сильная корреляция: (0.9 до 1].

Результат корреляционного анализа операционной скорости и активными сессиями :

  1. После точки наблюдения 23 - СУБД работает в нештатном режиме.

  2. Очень сильная корреляция между нагрузкой на СУБД и операционной скоростью СУБД.

Ожидания СУБД

Отношение времени ожидания к общему времени работы СУБД

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

  1. Начиная с точки 60 - относительная доля ожиданий резко увеличивается. СУБД работает в нештатном режиме.

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

Гипотеза

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

Результат корреляционного анализа

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

Результат работы сервисного скрипта

Наибольшее влияние на снижение производительности СУБД оказывает SQL запрос: queryid = -3703375232510669542 .

Шаги корреляционного анализа

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

  1. Lock = -0,991080979500333

  2. LWLock = -0,952840750047627

  3. IPC = -0,00747093318897355

  4. BufferPin = 0

  5. Extension = 0

  6. IO = 0

Ожидания типа Lock имеет большую корреляцию по сравнению с ожиданиями типа LWLock.

Ожидания типа Lock

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

Ожидания типа LWLock

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

2.Корреляция между типом ожидания Lock и событиями ожиданий

  1. transactionid = 0,999996784494388

  2. tuple = 0,989898319693633

  3. relation = 0,884541891919045

Ожидания transactionid

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

Ожидания tuple

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

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

3. Корреляция между ожиданиями transactionid и SQL запросами

queryid = -3703375232510669542

Корреляционный анализ производительности СУБД с использованием оперативно-тактического комплекса "PG_HAZEL" Postgresql, Субд, Мониторинг, Производительность, Анализ данных, Корреляция, Длиннопост

Ось Y - количество ожиданий Lock/tuple для queryid =-3703375232510669542

Итоги

Гипотеза подтверждена экспериментально для данного сценария нагрузки.

Необходимо продолжение проведение экспериментов по корреляционному анализу :

  1. Дополнительные сценарии нагрузочного тестирования .

  2. Анализ метрик производительности при продуктивной нагрузке на СУБД.

Показать полностью 10
[моё] Postgresql Субд Мониторинг Производительность Анализ данных Корреляция Длиннопост
0
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии