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

Wood Blocks Jam

Головоломки, Казуальные, Логическая

Играть

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

  • AlexKud AlexKud 38 постов
  • Animalrescueed Animalrescueed 36 постов
  • Oskanov Oskanov 7 постов
Посмотреть весь топ

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

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

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

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

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
0 просмотренных постов скрыто
kznalp
kznalp
3 месяца назад
Postgres DBA
Серия СУБД PostgreSQL

Влияние размера тестовой БД pgbench на результаты нагрузочного тестирования СУБД PostgreSQL⁠⁠

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

Предыстория

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

Ответ YandexGPT:

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

Ответ ChatPPG:

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

Ответ DeepSeek:

### 2. **Конфликты доступа (Contention)**
- **Маленькая база**: Выше вероятность конфликтов при параллельных обновлениях (например, в таблицах `accounts`). Это увеличивает время ожидания блокировок и снижает пропускную способность.
- **Большая база**: Данные распределены по большему числу строк, что снижает конкуренцию за одни и те же записи. Это особенно важно для тестов с высокой долей операций `UPDATE`.

...

Оптимальный размер тестовой базы зависит от целей тестирования. Для оценки максимальной производительности подходит маленькая база, а для имитации реальной нагрузки — база, сопоставимая с продакшеном по объему и структуре.

Сегодня будет интересный эксперимент по нагрузочному тестированию СУБД PostgreSQL

Результаты сравнительных экспериментов

1.Влияние размера тестовой базы данных на результаты нагрузочного тестирования СУБД PostgreSQL для слабых ВМ.

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

2. Влияние размера тестовой базы данных на результаты нагрузочного тестирования СУБД PostgreSQL для мощных ВМ.

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

Общий итог

  1. Нагрузочное тестирование с использованием pgbench должно проводится с тестовой базой по размеру сопоставимой с продуктивной БД.

  2. По итогам наиболее близок к правильному и более полному результату оказался DeepSeek.

Показать полностью
[моё] Субд Postgresql Тестирование Нейронные сети Производительность Яндекс Дзен (ссылка) Текст
0
kznalp
kznalp
3 месяца назад
Серия СУБД PostgreSQL

Эффект наблюдателя⁠⁠

Эффект наблюдателя Субд, Postgresql, Исследования, Производительность

Наблюдение за событием - влияет на событие.

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

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

С методологической точки зрения, вариантов использования сбора и анализа метрик производительности всего 2 :

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

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

Или проще говоря

  • в первом случае: меньше знаешь - крепче спишь ,

  • во-втором : за все надо платить.

С точки зрения физики - СУБД не является исключением и эффект наблюдателя , конечно же имеет место и да, любой сбор метрик производительности СУБД - влияет на производительность СУБД .

И это влияние можно оценить не только качественно но и количественно и обязательно нужно учитывать при анализе производительности СУБД:

PG_HAZEL : Влияние расчета медианного времени на производительность СУБД.

Показать полностью 1
[моё] Субд Postgresql Исследования Производительность
0
0
kznalp
kznalp
3 месяца назад
Postgres DBA
Серия ITшное

Postgres Pro Machine⁠⁠

Интересное и перспективное направление. Но, те кто принимает решение вряд ли в ближайшее время обратят внимание.Очень ограниченный рынок . Текущие информационные системы созданы на базе старых платформ. Конечно же , переделывать никто не будет - нет бюджетов.


Postgres Pro Machine: +30% к мощности баз данных и восстановление из бэкапа на скорости 20 ТБ/ч

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

В рамках Postgres Pro Machine из единого интерфейса можно:

🔹Управлять работой высоконагруженных транзакционных БД
🔹Горизонтально масштабировать базы данных большого размера
🔹Оркестрировать большое количество БД среднего размера
🔹Организовать работу с аналитическими запросами

⚡️За аппаратную часть отвечает Delta Computers. Postgres Pro Machine на заключительной стадии тестирований, пилотные внедрения запланированы на вторую половину 2025 года.

https://vk.com/wall-101507899_2107

Postgresql Субд ВКонтакте (ссылка)
0
kznalp
kznalp
3 месяца назад
Postgres DBA
Серия СУБД PostgreSQL

PG_HAZEL : Влияние checkpoint_timeout на производительность/скорость СУБД PostgreSQL - итог⁠⁠

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

PG_HAZEL : Влияние checkpoint_timeout на производительность/скорость СУБД PostgreSQL - итог Субд, Postgresql, Мониторинг, Производительность, Исследования, Длиннопост

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

Задача

Определить качественное и количественное влияние на производительность тестовой СУБД изменения параметра checkpoint_timeout для сценария нагрузки "Mix".

checkpoint_timeout (integer)

Максимальное время между автоматическими контрольными точками в WAL. Если это значение задаётся без единиц измерения, оно считается заданным в секундах. Допускаются значения от 30 секунд до одного дня. Значение по умолчанию — пять минут (5min).

Postgres Pro Enterprise : Документация: 15: 19.5. Журнал предзаписи : Компания Postgres Professional

Предварительный эксперимент

PG_HAZEL : влияние изменения checkpoint_timeout на производительности СУБД - часть 1.

Сравнительные эксперименты:

  1. Уменьшенное значение: checkpoint_timepout = 60 (1 минут).

  2. Значение по умолчанию: checkpoint_timepout = 300 (5 минут).

  3. Увеличенное значение: checkpoint_timepout = 900 (15 минут).

PG_HAZEL : Сценарий смешанной нагрузки "Mix" - для сравнения скорости СУБД.

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

PG_HAZEL : Влияние checkpoint_timeout на производительность/скорость СУБД PostgreSQL - итог Субд, Postgresql, Мониторинг, Производительность, Исследования, Длиннопост

Ось X - общая нагрузка на СУБД. Ось Y - апроксимированные значения операционной скорости.

PG_HAZEL : Влияние checkpoint_timeout на производительность/скорость СУБД PostgreSQL - итог Субд, Postgresql, Мониторинг, Производительность, Исследования, Длиннопост

Ось X - общая нагрузка на СУБД. Ось Y - операционная скорость.

Итог:

Для данной СУБД в сценарии смешанной нагрузки "Mix":

  1. Максимальная скорость СУБД достигается при значении параметра checkpoint_timeout = 60 при общей нагрузке 18 соединений.

  2. Максимальная нагрузка , после которой скорость СУБД начинает снижаться достигается при значении параметра checkpoint_timeout = 300 при общей нагрузке 26 соединений.

  3. При предельной общей нагрузке 111 соединений наибольшая скорость СУБД достигается при значении параметра checkpoint_timeout = 900.

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

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов⁠⁠

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

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

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

Начало экспериментов :

PG_HAZEL : ожидания СУБД PostgreSQL при отсутствии индексов.

Задача эксперимента

Определение и анализ характерных ожиданий, вызванных использованием индексов при массовых операциях INSERT.

Сравнительные эксперименты

Эксперимент-1 : Стандартный сценарий "Insert only"

Эксперимент-2 : Cценарий "Insert only" с использование индексов на таблице.

Сценарий "Insert only"

INSERT INTO pgbench_history (tid, bid, aid, delta, mtime)

VALUES ( current_tid , current_bid , current_aid , current_delta , CURRENT_TIMESTAMP );

Тестовая таблица

Table "public.pgbench_history"

Column | Type | Collation | Nullable | Default

--------+-----------------------------+-----------+----------+---------

tid | integer | | |

bid | integer | | |

aid | integer | | |

delta | integer | | |

mtime | timestamp without time zone | | |

filler | character(22) | | |

Foreign-key constraints:

"pgbench_history_aid_fkey" FOREIGN KEY (aid) EFERENCES pgbench_accounts(aid)

"pgbench_history_bid_fkey" FOREIGN KEY (bid) REFERENCES pgbench_branches(bid)

"pgbench_history_tid_fkey" FOREIGN KEY (tid) REFERENCES pgbench_tellers(tid)

Тестовая таблица с добавленными индексами (индексы по столбцам aid , delta, mtime)

Table "public.pgbench_history"

Column | Type | Collation | Nullable | Default

--------+-----------------------------+-----------+----------+---------

tid | integer | | |

bid | integer | | |

aid | integer | | |

delta | integer | | |

mtime | timestamp without time zone | | |

filler | character(22) | | |

Indexes:

"pgbench_history_idx1" btree (aid)

"pgbench_history_idx2" btree (delta)

"pgbench_history_idx3" btree (mtime)

Foreign-key constraints:

"pgbench_history_aid_fkey" FOREIGN KEY (aid) REFERENCES pgbench_accounts(aid)

"pgbench_history_bid_fkey" FOREIGN KEY (bid) REFERENCES pgbench_branches(bid)

"pgbench_history_tid_fkey" FOREIGN KEY (tid) REFERENCES pgbench_tellers(tid)

Операционная скорость и медианное время тестового SQL запроса

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Сравнительная таблица операционной скорости и медианного времени выполнения тестового запроса

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Ось X - нагрузка . Ось Y - операционная скорость.

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Ось X - нагрузка. Ось Y - медианного время выполнения.

Результат

Создание дополнительных индексов ухудшило скорость на 16-18% и увеличило время на 24-28%.

Корреляция между типами ожиданий и ожиданиями СУБД

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Сравнительная таблица ожиданий и корреляции для экспериментов

Результат

  1. Использование индексов резко увеличивает ожидания типа IO и LWLock.

Корреляция между типом ожидания и событиями ожидания при выполнении тестового запроса

Тип ожидания "IO"

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Сравнительная таблица по ожиданиям и корреляциям тестового запроса по типу ожидания IO

Результат

  • Резкий рост корреляции с ожиданием DataFileRead

Тип ожидания "Lock"

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Сравнительная таблица по ожиданиям и корреляциям тестового запроса по типу ожидания Lock

Тип ожидания "LWLock"

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Сравнительная таблица по ожиданиям и корреляциям тестового запроса по типу ожидания LWLock

PG_HAZEL : ожидания СУБД PostgreSQL при избытке индексов Субд, Postgresql, Тестирование, Производительность, Длиннопост

Относительное изменение ожиданий по типу LWLock

Результат

Резкий рост корреляции с событием ожидания CheckpointerComm.

Итог и результаты анализа

Отключение индексов при массовых операциях вставки данных дает прирост операционной скорости 16-18% .

Характерными признаками наличия лишних индексов при преобладании операция вставки по таблице являются:

  1. Высокое значение коэффициента корреляции с событием ожидания IO/DataFileRead , LWLock/BufferMapping и LWLock/CheckpointerComm

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

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

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

Презентация по докладу "Корреляционный анализ ожиданий СУБД PostgreSQL"⁠⁠

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

Начата работа над докладом для осенних конференций Heisenbug и PgProDay .

Презентация по докладу "Корреляционный анализ ожиданий СУБД PostgreSQL" Конференция, Производительность, Субд, Postgresql, Длиннопост
Презентация по докладу "Корреляционный анализ ожиданий СУБД PostgreSQL" Конференция, Производительность, Субд, Postgresql, Длиннопост
Презентация по докладу "Корреляционный анализ ожиданий СУБД PostgreSQL" Конференция, Производительность, Субд, Postgresql, Длиннопост
Презентация по докладу "Корреляционный анализ ожиданий СУБД PostgreSQL" Конференция, Производительность, Субд, Postgresql, Длиннопост
Презентация по докладу "Корреляционный анализ ожиданий СУБД PostgreSQL" Конференция, Производительность, Субд, Postgresql, Длиннопост
Презентация по докладу "Корреляционный анализ ожиданий СУБД PostgreSQL" Конференция, Производительность, Субд, Postgresql, Длиннопост
Показать полностью 5
[моё] Конференция Производительность Субд Postgresql Длиннопост
3
2
kznalp
kznalp
4 месяца назад
Postgres DBA
Серия СУБД PostgreSQL

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL⁠⁠

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

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Оптимизировать можно до бесконечности. Бесконечность - не предел.

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

Начало работ по использованию результатов корреляционного анализа ожиданий СУБД для подготовке процесса Continual improvement .

Постановка эксперимента

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

Конфигурация ВМ и СУБД

  • Postgres Pro (enterprise certified) 15.10.1 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 11.4.1 20230605 (Red Soft 11.4.0-1), 64-bit

  • CPU 50

  • RAM 88GB

  • RED OS 7.3

Приоритеты инцидентов

Подробнее о приоритетах

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Ось X - инцидент производительности СУБД . Ось Y - приоритет инцидента

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Ось X - инцидент производительности СУБД . Ось Y - приоритет инцидента

Результат

  • свыше 80% инцидентов производительности имеют приоритет 4

Количество SQL запросов по инцидентам

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Ось X - queryid запроса. Ось Y - количество инцидентов в которых участвовал запрос.

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Ось X - queryid запроса. Ось Y - количество инцидентов в которых участвовал запрос

SQL запросы участвующие в более 80% инцидентов

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Ось X - queryid запроса. Ось Y - количество инцидентов в которых участвовал запрос.

  • Количество SQL запросов участвующих во всех инцидентах = 5

  • Количество SQL запросов участвующих в 80% инцидентов = 29

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

wait_event_type

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

wait_event

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

События ожидания составляющие 80% от общего числа ожиданий.

SQL запросы для оптимизации

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Список SQL запросов участувующих в инцидентах

queryid = 1214551160677155501

План выполнения запроса

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

Статистика ожиданий по типу IO

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

События ожидания по типу IO

История выполнения и событий ожидания по типу IO для queryid = 1214551160677155501

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

Статистика ожиданий по типу IPC

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

События ожидания по типу IPC

История выполнения и событий ожидания по типу IPC для queryid = 1214551160677155501

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

PG_HAZEL : Процесс оптимизации производительности СУБД PostgreSQL Субд, Postgresql, Оптимизация, Мониторинг, Производительность, Длиннопост

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

Результаты анализа по SQL queryid = 1214551160677155501

1. Событий ожидания типа IPC существенно больше чем событий по типу IO.

2. На основании результатов проведенных ранее экспериментов , принято решение добавить индекс в таблицу для решения проблемы большого количества ожиданий типа IPC.

3. После добавления индексов , провести анализ результатов .

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

Ожидания IPC при отсутствии индекса в СУБД PostgreSQL⁠⁠

Симптомы

При высокой нагрузке на СУБД при выполнении SELECT , возможны массовые ожидания IPC/BgWorkerShutdown.

Ожидания IPC при отсутствии индекса в СУБД PostgreSQL Субд, Postgresql, Производительность, Оптимизация, Текст, Яндекс Дзен (ссылка)

Причина

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

Исправление

Создание индекса по полю, участвующему в запросе , в плане выполнения которого используется Workers Planned - Workers Launched.

Подробнее

PG_HAZEL : ожидания СУБД PostgreSQL при отсутствии индексов.

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