Вход на сайт

Просмотр новости

Найдите то, что Вас интересует

Каждые 5 минут транзакции в PostgreSQL замирают на 3 - ...

Дата публикации: 22-09-2026 13:17:53

Каждые 5 минут транзакции в PostgreSQL замирают на 3 - 7 секунд. Разбор кривого механизма сброса WAL на диск.
Производительность базы данных выглядит идеальной, пока нагрузка не упирается в дефолтный checkpoint в PostgreSQL. При стандартном значении `max_wal_size = 1GB` ядро базы начинает панически сбрасывать грязные страницы (dirty pages) на накопитель, как только исчерпывается этот лимит или истекает таймер `checkpoint_timeout = 5min`. В этот момент дисковая подсистема получает лавинообразную запись, а IOPS упирается в потолок.
Результат - классический микрофриз. Очередь запросов растет, клиенты получают таймауты, а метрика `checkpoint_write_time` в системных представлениях улетает в космос. Проблема усугубляется тем, что фоновый процесс сброса (`bgwriter`) настроен слишком консервативно и перекладывает всю тяжелую работу на сам чекпоинт.
Чтобы избавиться от фризов, нужно заставить базу размазывать нагрузку на запись во времени, а не устраивать дисковый шторм раз в пять минут.
1. Увеличиваем объем WAL-файлов до адекватных значений под вашу емкость дисков:
`max_wal_size = '16GB'`
`min_wal_size = '2GB'`
2. Растягиваем интервал между чекпоинтами, снижая пиковую интенсивность записи:
`checkpoint_timeout = '30min'`
3. Управляем агрессивностью сброса через `checkpoint_completion_target`. Значение `0.9` означает, что PostgreSQL постарается равномерно распределить запись 90% времени от заданного таймаута:
`checkpoint_completion_target = 0.9`
4. Тюним фоновый писатель (`bgwriter`), чтобы он зачищал буферы заранее:
`bgwriter_delay = 20ms`
`bgwriter_lru_maxpages = 200`
`bgwriter_lru_multiplier = 3.0`
Мониторите ли вы поведение чекпоинтов через `pg_stat_bgwriter` или ваша инфраструктура до сих пор живет на дефолтах? Делитесь в комментариях.
- Инфраструктурный аудит и калькулятор TCO кластера: @Personnel_run_bot (/tma)
- База знаний и разборы: ftops.space
- ftops.space | Run-As-Daemon Infrastructure

Схожие новости

#Наименование новостиТональностьИнформативностьДата публикации
1Каждые 5 минут транзакции в PostgreSQL замирают на 3 - ...010.6525-09-2026
2Каждые 5 минут транзакции в высоконагруженной PostgreSQL базе внезапно замирают ...011.8624-09-2026
3Каждые 5 минут транзакции в PostgreSQL замирают на 3-7 секунд. ...-18.7721-09-2026
4Каждые 5 минут транзакции в PostgreSQL замирают на 3 - ...011.3224-09-2026
5[Перевод] Статистика PostgreSQL: почему запросы выполняются медленно07.7419-08-2026
6PostgreSQL 19 Beta 2 Released! 5716-07-2026
7Кто выгрузил платежи, или Пример расследования инцидента на аудите в Postgres Pro Enterprise0710-07-2026
8PostgreSQL для бэкендера: 10 фич, которыми мало пользуются, а зря5730-06-2026
9[Перевод] Нетипичные оптимизации в PostgreSQL, или Креативное ускорение запросов08.2102-03-2026
10Ваши тесты медленные не из-за базы данных. Я измерил09.615-06-2026

Классификация: Мнения. Схожих патентов: 0. Схожих новостей: 10. Тональность: 0. Информативность: 9.34. Источник: vk.com.