@AKLZephyr

Checkpoints are occurring too frequently?

В логах postgres приходят сообщения :

LOG: checkpoints are occurring too frequently (9 seconds apart)
HINT: Consider increasing the configuration parameter "max_wal_size".
LOG: checkpoints are occurring too frequently (13 seconds apart)
HINT: Consider increasing the configuration parameter "max_wal_size".


Периодически появляются сильные задержки iowait.

Сервер: 6cpu, 16memory, 320ssd

Конфиг:
shared_preload_libraries = 'pg_stat_statements'		# (change requires restart)
logging_collector = on		# Enable capturing of stderr and csvlog
log_directory = 'pg_log'		# directory where log files are written,
log_filename = 'postgresql-%Y-%m-%d.log'	# log file name pattern
log_truncate_on_rotation = on		# If on, an existing log file with the
log_rotation_age = 14d			# Automatic rotation of logfiles will
log_rotation_size = 0		    # Automatic rotation of logfiles will
log_min_duration_statement = 10000	# -1 is disabled, 0 logs all statements
checkpoint_timeout = 30min
max_wal_size = 8GB
effective_cache_size = 6GB
  • Вопрос задан
  • 4450 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Предупреждение выводит настройка checkpoint_warning. Говорит о том, что вы создаёте так много wal, что срабатывают чекпойнты чаще величины этого варнинга. Это именно совет базы посмотреть внимательнее на конфигурацию и workload.

Выяснить, чем именно вы генерируете wal и, возможно, переосмыслить этот процесс. Смотрите, что у вас обычно работает в то время, когда срабатывают эти предупреждения. Какие-то массовые импорты данных, ещё что, пишущее много данных.
Возможно, вам нужно увеличить свой max_wal_size ещё дальше. Но учитывайте, что чем больше wal между чекпойнтами - тем дольше будет стартовать база после аварийного выключения, т.к. должна накатить все wal от последнего чекпойнта.
Это tradeoff между временем старта база при аварии и количеством IO при нормальной работе. Чекпойнт - это довольно много IO.

PS: спросите у базы "show max_wal_size;" точно ли настройка применена.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы