Долгое время перемещения постов / ошибки тайм-аута

Мы используем саморазмещённый форум Discourse (tff-forum.de) с более чем 4 миллионами сообщений и множеством крупных тем.

После последнего обновления до версии 3.4.0.beta3 мы наблюдаем длительное время выполнения — от 15 до 20 секунд — при перемещении сообщений из одной темы в другую.

В некоторых случаях функция завершается с ошибкой, и в логе появляется следующее сообщение:

Unicorn worker received USR2 signal indicating it is about to timeout, dumping backtrace for main thread

До обновления проблемы возникали только при перемещении сообщений между очень крупными темами. Теперь функция иногда завершается с ошибкой даже в темах, содержащих лишь несколько сообщений.

Не могли бы вы подсказать, что можно проверить, чтобы найти причину этой проблемы? Возможно ли, что у нас возникла проблема с базой данных (отсутствует индекс или статистика)?

Заранее благодарим за вашу поддержку.

В версии beta3 были внесены коммиты, вызвавшие проблемы с производительностью. Вам, вероятно, следует обновиться.

Примечание: Обновление PostgreSQL 15 усложняет процесс обновления.

Спасибо за рекомендацию обновиться до версии 3.4.0.beta4. Из-за перехода на PostgreSQL версии 15 нам потребуется более длительное окно технического обслуживания. Однако логично выполнить обновление в ближайшие дни, чтобы проверить, решит ли это нашу проблему.

Мы были немного удивлены обновлением PostgreSQL. Несколько дней назад мы обновили нашу тестовую систему до версии 3.4.0.beta3, и проблем не возникло. При обновлении продакшн-системы обновление базы данных внезапно стало частью процесса. Мы не были к этому готовы и пропустили обновление базы данных. Поэтому нам нужно выполнить его либо вместе с версией 3.4.0.beta4, либо отдельным шагом заранее.

Возможно ли, что пропущенное обновление базы данных вызывает проблемы с производительностью? Есть ли простой способ проверить, корректны ли индексы и статистика базы данных?

Скорее всего, нет.

Вы можете выполнить команды VACUUM и REINDEX, рекомендованные в теме обновления PG, в любое время.