Вход на сайт

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

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

Каждые пять минут нагруженный PostgreSQL кластер словно падает в обморок ...

Дата публикации: 27-09-2026 00:18:07

Каждые пять минут нагруженный PostgreSQL кластер словно падает в обморок - транзакции замирают на три-семь секунд, соединения висят на пуле, а p99 latency улетает в космос. Причина кроется в дефолтных настройках механизма checkpoint, которые гарантируют классический IO-шторм.
По умолчанию параметр max_wal_size установлен на скромные 1 GB. Как только объем измененных данных в WAL достигает этого лимитa - или истекает таймаут checkpoint_timeout в пять минут, - ядро СУБД обязано сбросить все грязные страницы памяти на дисковый массив. PostgreSQL включает режим агрессивного сброса, пытаясь записать гигабайты накопившихся dirty pages за минимальное время.
Дисковая подсистема захлебывается. Очередь записи в OS page cache переполняется, пропускная способность контроллера упирается в hardware-лимит, и даже простые фоновые SELECT-запросы начинают ждать блокировки на чтение буферов. Storage выдает 100% utilisation, IOPS падает в ноль, а мониторинг фиксирует синхронный всплеск системного CPU в состоянии iowait.
Чтобы база данных перестала устраивать микрофризы, этот объем работы нужно плавно размазать во времени. Наша цель - заставить чеклинеры работать постоянно и незаметно, избегая пиковых нагрузок на диски.
Первым делом увеличиваем пул WAL-файлов. Установка max_wal_size в 16 GB или 32 GB дает буферу удержать больше изменений без аварийного триггера. Min_wal_size поднимаем до 2-4 GB, чтобы PostgreSQL не занимался постоянным пересозданием файлов в тихие периоды.
Второй шаг - растягиваем интервал самого checkpoint_timeout до 30 или 60 минут. Больше окно означает, что те же 16 гигабайт изменений будут сбрасываться не за пять минут, а за полчаса.
Третий и главный инструмент - параметр checkpoint_completion_target. По умолчанию он равен 0.9, что означает попытку завершить сброс за 90% от отведенного времени. Для высоконагруженных систем выставляем его в 0.95 или даже 0.98. Это заставляет фоновый процесс bgwriter и чеклинеры писать данные на диск микропорциями, строго дозирая IOPS.
Дополнительно тюним бэкграунд-писатель: увеличиваем bgwriter_lru_maxpages до 200-400 и снижаем bgwriter_lru_multiplier до 2.0-3.0. Это гарантирует, что страницы вымываются из памяти заранее, во время обычной работы транзакций, а не в момент срабатывания чеклиста.
В результате диск переходит из режима удушья в фоновый рабочий ритм, p99 задержки выравниваются, а пользователи перестают замечать техническое обслуживание СУБД.
- Инфраструктурный аудит и калькулятор TCO кластера: @Personnel_run_bot (/tma)
- База знаний и разборы: ftops.space
- ftops.space | Run-As-Daemon Infrastructure

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

#Наименование новостиТональностьИнформативностьДата публикации
1База данных захлебывается в дисковом I/O wait, хотя на сервере ...08.626-09-2026
2База данных захлебывается в дисковом I/O wait, хотя на сервере ...08.4126-09-2026
3Доверить сервер ИИ-агенту и не пожалеть: как спать спокойно без SSH012.5826-09-2026
4[Голос Стаи: Архитектор Сети] Вам продают "удобство облака", но на ...07.726-09-2026
5Pony ORM: толстая пачка фич и улучшений09.5826-09-2026
6xk6-sip: мониторинг нагрузочного тестирования VoIP/SIP-звонков017.2126-09-2026
7Какие наши продукты задевает эта CVE? Я продолжил заброшенный Minefield и нашёл, что он читал SBOM задом наперёд0926-09-2026
8Ну что, народ, эпохальный апгрейд официально завершен! Наконец-то полностью перетряхнул ...011.926-09-2026
9Событие вместо поля: как журнал медиации вернул историю, которую система стирала07.6226-09-2026
1010.000 PDFs? Stirling PDF macht daraus einen Job017.1425-09-2026

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