Оптимизация производительности: что насчет max_wal_size?

Привет,

Последнее обновление с версии beta-3 до beta-4 оказалось для нас более «затратным по усилиям», чем обычно, и в логах постоянно появлялось сообщение следующего содержания:
Consider increasing the configuration parameter "max_wal_size".

Так как я не эксперт в этой области, поиск в Google показал, что параметр max_wal_size может быть крайне важен для производительности (по мнению некоторых, уступает только параметру shared_buffers, см. ниже):
Tuning max_wal_size in PostgreSQL | EDB (enterprisedb.com)
Tuning Your Postgres Database for High Write Loads (crunchydata.com)
PostgreSQL Performance Tuning and Optimization Guide - Sematext

Что вы думаете по этому поводу? Стоит ли менять параметр max_wal_size, даже если эта проблема возникла только во время обновления?

Для контекста: у нас большой форум с более чем 7 миллионами постов, который потребляет много ресурсов. Несколько раз в неделю на нём одновременно находятся 400–600 пользователей, которые обновляют страницу, публикуют сообщения и выполняют другие действия. С этим у нас нет проблем :smiley:, но иногда мы вынуждены оптимизировать систему, чтобы получить максимально возможную производительность в рамках наших (ограниченных) ресурсов.

Какова польза от выполнения SELECT checkpoints_timed, checkpoints_req FROM pg_stat_bgwriter; в базе данных?

Давайте проверим, правильно ли я понял:

SELECT checkpoints_timed, checkpoints_req FROM pg_stat_bgwriter; 
checkpoints_timed | checkpoints_req 
-------------------+-----------------
              4936 |             225
(1 строка) 

Похоже, это было вызвано в основном миграциями во время обновления, а в повседневной работе форум работает нормально.

Мы действительно выпустили несколько ресурсоёмких миграций в этом месяце. Не окажется ли у вас под рукой журнала восстановления?

Нет, я могу позже попытаться найти это где-нибудь, но я доверяю твоему мнению :+1: (форум работает нормально, за исключением некоторых проблем с нагрузкой в те часы пик, о которых я упоминал).