Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

WAL_GENERATION_RATE_HIGH 1С:Предприятие и СУБД

Сжатие журнала транзакций WAL в PostgreSQL: Параметр wal_compression

Обновлено: 26.08.2026 · Официальная документация ↗
  • Аномально высокая генерация объема WAL-файлов (гигабайты в минуту) при интенсивных операциях UPDATE/INSERT.
  • Канал передачи данных между Primary и Standby узлами перегружен трафиком репликации.
  • Медленная архивация WAL на сервер резервного копирования через archive_command.

1. Выбор алгоритма сжатия WAL в PostgreSQL

Начиная с PostgreSQL 15, поддерживаются современные быстрые алгоритмы компрессии полных образов страниц (Full Page Images):

  • off: Сжатие отключено (высокая нагрузка на диски);
  • on / pglz: Встроенный алгоритм (базовая эффективность);
  • lz4: Сверхбыстрое сжатие с минимальным потреблением CPU;
  • zstd: Максимальный коэффициент сжатия при высокой производительности.

2. Настройка в postgresql.conf

# Включение современного сжатия Zstandard
wal_compression = zstd

# Связанные параметры журнала предзаписи
wal_buffers = 64MB
checkpoint_completion_target = 0.9
max_wal_size = 32GB
min_wal_size = 4GB

3. Применение конфигурации

SELECT pg_reload_conf();

4. Мониторинг генерации объема WAL

Проверьте текущую скорость записи LSN:

SELECT 
    pg_size_pretty(pg_wal_lsn_diff(pg_current_wal_lsn(), '0/0000000')) AS total_wal_generated,
    pg_walfile_name(pg_current_wal_lsn()) AS current_wal_file;
💡 Практика специалистов: Для большинства высоконагруженных СУБД выбирайте wal_compression = lz4 для минимальной задержки или zstd для максимальной экономии трафика репликации через медленные WAN-каналы.

Частые вопросы (FAQ)

Что именно сжимает параметр wal_compression?

Он сжимает полные образы страниц (Full Page Images, FPI), которые PostgreSQL записывает в WAL после каждого чекпоинта при первой модификации страницы, сокращая размер WAL на 30–60%.

Требуется ли перезапуск СУБД для изменения wal_compression?

Нет, параметр относится к классу sighup и применяется динамически командой SELECT pg_reload_conf();.

Создает ли wal_compression = zstd существенную нагрузку на CPU?

Нагрузка на CPU увеличивается незначительно (обычно < 3-5%), при этом за счет кратного снижения дискового I/O общая отзывчивость сервера возрастает.

Требуется ли поддержка LZ4/Zstandard на стороне реплики?

Да, исполняемые бинарные файлы PostgreSQL на реплике должны быть собраны с поддержкой соответствующих библиотек (liblz4, libzstd) для успешного разжатия WAL.

Полезные материалы
Рекомендуем