recovery_prefetch в Postgres может приводить к простоям

Postgres recovery_prefetch can cause outages

Настройка recovery_prefetch, призванная ускорять восстановление реплик, на деле может вызывать многочасовые простои. При синхронной репликации и включённых full page writes она превращает последовательное чтение в случайные 8-килобайтные операции, усиливая IOPS до 16 раз. Если в этот момент прерывается поток WAL, реплика не успевает догнать primary, и запись встаёт. Автор воспроизвёл сбой на стенде с 500 IOPS и предлагает отключить recovery_prefetch.

Проблема с recovery_prefetch не только в FPI: когда primary выполняет крупный последовательный ввод-вывод, recovery_prefetch превращает эти операции в случайные чтения по 8 КБ. Для того же объёма прочитанных байт это усиливает IOPS на репликах вплоть до 16 раз.

Ещё за этот день

2026-10-22