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

Зазеркалье – фэнтези MMORPG

Мультиплеер, Ролевые, Приключения

Играть

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

  • solenakrivetka solenakrivetka 7 постов
  • Animalrescueed Animalrescueed 53 поста
  • ia.panorama ia.panorama 12 постов
Посмотреть весь топ

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

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

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

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

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

PG_HAZEL : Сценарий нагрузочного тестирования "HighLoad"⁠⁠

3 месяца назад

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

Испытания на предельных режимах - нужны.

Испытания на предельных режимах - нужны.

Задача

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

Виртуальная машина 12

  • CPU = 8

  • RAM = 8GB

  • Red OS Murom 7.3

  • PostgreSQL 17

Сценарий тестирования-1

  1. Select only : 50% нагрузки

  2. Select + Update : 30% нагрузки

  3. Insert only : 15% нагрузки

Сценарий тестирования-3

  1. Select only : 50% нагрузки

  2. Select + Update : 30% нагрузки

  3. Insert only : 15% нагрузки

  4. CPU + RAM Load : 5% нагрузки

Нагрузка

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

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


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

Среднее снижение производительности СУБД в эксперименте-3 составило 27.8%

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

Среднее увеличение ожиданий СУБД в эксперименте-3 составило 17.9%

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

Среднее увеличение ожиданий IO в эксперименте-3 составило 16.82%

Ожидания IPC

Среднее увеличение ожиданий IPC в эксперименте-3 составило 47 523%

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

Среднее уменьшение ожиданий Lock в эксперименте-3 составило 49.10%

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

Среднее увеличение ожиданий LWLock в эксперименте-3 составило 89.10%

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

Среднее увеличение ожиданий Timeout в эксперименте-3 составило 108.60%

Подробности

PG_HAZEL : Сценарий нагрузочного тестирования "HighLoad". Часть 1 - СУБД.


Чек-лист IO - без изменений

Чек-лист CPU - ALARM

Чек-лист RAM - без изменений

Подробности

PG_HAZEL : Сценарий нагрузочного тестирования "HighLoad". Часть 2 - ОС.


Продолжение

PG_HAZEL : Сценарий нагрузочного тестирования "HighLoad" - для слабой СУБД и ВМ.

Бери ношу по себе, чтоб не падать при ходьбе.

Бери ношу по себе, чтоб не падать при ходьбе.

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

PG_HAZEL : Определение причины неудачного выполнения нагрузочного тестирования СУБД⁠⁠

3 месяца назад

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

У любой проблемы есть корневые и сопутствующие причины.

У любой проблемы есть корневые и сопутствующие причины.

Задача

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

Виртуальная машина 06

  • CPU = 2

  • RAM = 2GB

  • Astra Linux 1.7

  • PostgreSQL 15

Сценарий тестирования-1

  1. Select only : 50% нагрузки

  2. Select + Update : 30% нагрузки

  3. Insert only : 15% нагрузки

Сценарий тестирования-2

  1. Select only : 50% нагрузки

  2. Select + Update : 30% нагрузки

  3. Insert only : 15% нагрузки

  4. CPU Load : 5% нагрузки

Нагрузка

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

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

Операционная скорость - 2

Ось X - количество сессий pgbench. Ось Y - Операционная скорость.

Ось X - количество сессий pgbench. Ось Y - Операционная скорость.

Отсутствуют данные по нагрузке 39 - 115 .

Чек-лист IO (сценарий-1 и сценарий-2)

Чек-лист CPU (сценарий-1 и сценарий-2)

Чек-лист RAM (сценарий-1 и сценарий-2)

Причина ошибки сбора данных при нагрузочном тестировании по сценарию-2

Свопинг в ходе нагрузочного тестирования по сценарию-2.

📊 1. Механизм возникновения свопинга при нехватке памяти

  • При увеличении числа подключений к СУБД (например, с 5 до 115) каждый новый процесс требует выделения памяти для своих операций. Если физической памяти (RAM) недостаточно, система начинает использовать swap-пространство на диске для перемещения неактивных страниц памяти.

  • При конфигурации 2 GB RAM и интенсивной нагрузке на CPU процессы СУБД могут быстро исчерпать доступную оперативную память. Это активирует механизм подкачки, при котором демон kswapd начинает активно перемещать данные между RAM и диском, что дополнительно нагружает CPU.

⚙️ 2. Влияние свопинга на CPU и общую производительность

  • Процесс свопинга требует значительных вычислительных ресурсов. При активном использовании swap-пространства нагрузка на CPU может достигать 90-100%, причем большая часть этого времени тратится на системные (kernel) операции.

  • Это связано с тем, что ядро Linux должно управлять страницами памяти, определять, какие данные перемещать в swap, и обрабатывать дисковые операции ввода-вывода. В результате нагрузка на CPU возрастает даже при том, что основная задача свопинга — разгрузить оперативную память.

3. Экспоненциальный рост нагрузки и его последствия

  • Экспоненциальное увеличение числа соединений (с 5 до 115) приводит к нелинейному росту потребления ресурсов. Каждое новое соединение требует памяти для выполнения запросов, хранения временных данных и управления транзакциями.

  • При 2 GB RAM такой рост может быстро исчерпать доступную память. Например, если каждое соединение потребляет даже небольшой объем памяти (например, 20-50 MB), то при 115 соединениях общее потребление может превысить 2 GB, что активирует свопинг.

💎 Заключение

При конфигурации CPU=2 ядра и RAM=2 GB экспоненциальный рост нагрузки до 115 соединений с высокой вероятностью приведет к свопингу, что вызовет дополнительную нагрузку на CPU и может значительно снизить производительность СУБД.

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

PG_HAZEL : Анализ состояния ОС при решении инцидента производительности СУБД⁠⁠

3 месяца назад

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

В DBA мелочей не бывает

В DBA мелочей не бывает

Задача

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

Методика сбора и анализа статистических данных показателей ОС

PG_HAZEL : Комплексный анализ результатов нагрузочного тестирования СУБД PostgreSQL

Инцидент

2.1 cluster - производительность СУБД

Результаты отчета:

  1. Исторические данные производительности и ожиданий СУБД.

  2. Линия регрессии производительности и ожиданий СУБД.

  3. Абсолютные значения события ожидания

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

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

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

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

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

Корреляция ожиданий

Максимальные и минимальные значения скорости и ожиданий

Максимальные и минимальные значения скорости и ожиданий

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

События ожидания - LWLock

2.2 correlation - корреляция ОС + vmstat

Результаты отчета:

  1. Корреляция ожиданий типа IO и метрик vmstat

2.3.1 stats - корреляция vmstat + iostat (файловая система /data)

Результаты отчета:

  1. Абсолютные значения метрик vmstat и iostat

  2. Корреляция метрик vmstat и iostat

2.3.2 stats - корреляция vmstat + iostat (файловая система /wal)

Результаты отчета:

  1. Абсолютные значения метрик vmstat и iostat

  2. Корреляция метрик vmstat и iostat

2.4 check_io - чек-лист IO

Результаты отчета:

  1. Абсолютные значения метрик vmstat

  2. Состояние IO

2.5 check_cpu - чек-лист CPU(32)

Результаты отчета:

  1. Абсолютные значения метрик vmstat

  2. Состояние CPU

2.6 check_ram - чек-лист RAM(64GB)

Результаты отчета:

  1. Абсолютные значения метрик vmstat

  2. Состояние RAM

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

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

3 месяца назад

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

Любые теоретические исследования приводят к практическим результатам.

Любые теоретические исследования приводят к практическим результатам.

1. Отчет stress

  • Получение точки начала и окончания теста

  • Снимки pgpro_pwr итераций теста

  • queryid - тестовых сценариев

Пример результата отчета

Пример результата отчета

2. Отчет summary - сводный отчет по производительности СУБД и ОС

2.1 cluster - производительность СУБД

Теория

PG_HAZEL : Мониторинг и анализ производительности СУБД PostgreSQL

2.2 correlation - корреляция io + vmstat

Теория

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

2.3 stats - корреляция vmstat + iostat

Теория

IOSTAT + VMSTAT

2.4 check_io - чек-лист IO

Теория

PG_HAZEL : Чек-лист IO(vmstat : b/wa).

2.5 check_cpu - чек-лист CPU

Теория

PG_HAZEL : Чек-лист CPU (vmstat: r/cs/in/us/sy).

2.6 check_ram - чек-лист RAM

Теория

PG_HAZEL : Чек-лист RAM(vmstat: free/si/so).

2.7 iostat_{имя устройства} - чек-лист диска монтирования файловой системы /data , /wal

IOSTAT : Признаки проблем IO

Планы на будущее

Полный пост - на рабочем дзен-канале ( Пикабу ограничивает количество ссылок)

PG_HAZEL : Комплексный анализ результатов нагрузочного тестирования СУБД PostgreSQL

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

PG_HAZEL : Использование корреляционного анализа ожиданий СУБД и метрик ОС для определения причин деградации производительности СУБД⁠⁠

3 месяца назад

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

Правильно настроенный агрегат - быстрее.

Правильно настроенный агрегат - быстрее.

Задача

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

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

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

Результаты нагрузочного тестирования виртуальной машины-06

PG_HAZEL : Анализ результатов нагрузочного тестирования для малой ВМ

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

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

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

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

Результаты нагрузочного тестирования виртуальной машины-12

PG_HAZEL : Анализ результатов нагрузочного тестирования для большой ВМ

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

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

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

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

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

PG_HAZEL : Чек-лист подсистемы IO c использованием корреляционного анализа результатов IOSTAT⁠⁠

3 месяца назад

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

Задача

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


PG_HAZEL : Чек-лист подсистемы IO c использованием корреляционного анализа результатов IOSTAT(виртуальная машина-06)

Минимальные и максимальные значение: Файловая система /data

  1. wa (I/O wait): Важный показатель! Процент времени, в течение которого процессор простаивал в ожидании завершения операций I/O.

  2. %util: Процент времени, когда устройство было занято обработкой I/O-запросов

  3. buff: Объем памяти, используемой буферами (буферизация данных для записи на диск).

  4. cache: Объем памяти, используемой кэшем (кэширование данных, прочитанных с диска). Свободная память = free + buff + cache (ядло освободит буферы и кэш при необходимости).

  5. r/s: Количество операций чтения (запросов) в секунду

  6. rMB/s: Объем данных, прочитанных с устройства в мегабайтах в секунду

  7. w/s: Количество операций записи (запросов) в секунду

  8. wMB/s: Объем данных, записанных на устройство в мегабайтах в секунду

  9. r_await: Среднее время чтения (в миллисекундах).

  10. w_await: Среднее время записи (в миллисекундах).

  11. aqu-sz: Средняя длина очереди запросов к устройству. Значение больше 0 может указывать на накопление запросов.

Корреляционный анализ: Файловая система /data


PG_HAZEL : Чек-лист подсистемы IO c использованием корреляционного анализа результатов IOSTAT(виртуальная машина-12)

Минимальные и максимальные значение: Файловая система /data

  1. wa (I/O wait): Важный показатель! Процент времени, в течение которого процессор простаивал в ожидании завершения операций I/O.

  2. %util: Процент времени, когда устройство было занято обработкой I/O-запросов

  3. buff: Объем памяти, используемой буферами (буферизация данных для записи на диск).

  4. cache: Объем памяти, используемой кэшем (кэширование данных, прочитанных с диска). Свободная память = free + buff + cache (ядло освободит буферы и кэш при необходимости).

  5. r/s: Количество операций чтения (запросов) в секунду

  6. rMB/s: Объем данных, прочитанных с устройства в мегабайтах в секунду

  7. w/s: Количество операций записи (запросов) в секунду

  8. wMB/s: Объем данных, записанных на устройство в мегабайтах в секунду

  9. r_await: Среднее время чтения (в миллисекундах).

  10. w_await: Среднее время записи (в миллисекундах).

  11. aqu-sz: Средняя длина очереди запросов к устройству. Значение больше 0 может указывать на накопление запросов.

Корреляционный анализ: Файловая система /data

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

PG_HAZEL vs PGPRO_PWR⁠⁠

3 месяца назад
PG_HAZEL vs PGPRO_PWR

Cравнительный анализ преимуществ комплекса pg_hazel перед системой pgpro_pwr в контексте мониторинга производительности PostgreSQL


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

На сегодняшний день рынок предлагает множество инструментов для мониторинга и анализа производительности PostgreSQL — одной из самых распространенных систем управления реляционными данными (СУБД).

В частности, заслуживают внимания такие продукты, как комплекс pg_hazel и система pgpro_pwr, которые широко используются в корпоративных инфраструктурах.

Настоящий материал посвящен детальному сравнению этих двух решений и выяснению их сильных сторон применительно к задачам повышения производительности PostgreSQL.

Подробности : pg_hazel vs pgpro_pwr

Показать полностью 1
Субд Postgresql
1
3
kznalp
kznalp
Postgres DBA
Серия СУБД PostgreSQL

PG_HAZEL : Реальные кейсы использования чек-листа инфраструктуры СУБД PostgreSQL при инцидентах производительности СУБД⁠⁠

3 месяца назад

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

Инфраструктура это фундамент нормальной работы СУБД

Инфраструктура это фундамент нормальной работы СУБД

Задача

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


PG_HAZEL : Чек-лист инфраструктуры СУБД при инциденте производительности. Случай №1 - CPU + RAM.

Инцидент

IO - OK

CPU - есть проблемы

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

  2. Возможно проблема в пользовательском приложении(resource contention).

RAM - есть проблемы

  • Свободная RAM менее 5%


PG_HAZEL : Чек-лист инфраструктуры СУБД при инциденте производительности. Случай №2 - CPU + RAM.

Инцидент

IO - OK

CPU - есть проблемы

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

  2. Возможно проблема в пользовательском приложении(resource contention).

  3. Ядро тратит много времени на переключение контекста и планирование, вместо полезной работы.

RAM - есть проблемы

  • Свободная RAM менее 5%


PG_HAZEL : Чек-лист инфраструктуры СУБД при инциденте производительности. Случай №3 - CPU + Lock.

Инцидент

IO - OK

CPU - есть проблемы

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

  2. Возможно проблема в пользовательском приложении(resource contention)

RAM - OK

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