Long runtime moving posts / timeout errors

Estamos executando um fórum Discourse auto-hospedado (tff-forum.de) com mais de 4 milhões de postagens e muitos tópicos grandes.

Desde a última atualização para a versão 3.4.0.beta3, estamos experimentando longos tempos de execução de 15 a 20 segundos ao mover postagens de um tópico para outro.

Em alguns casos, a função termina com um erro e o log mostra a seguinte mensagem:

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

Antes da atualização, tínhamos problemas apenas ao mover postagens entre tópicos muito grandes. Agora, a função às vezes termina quando os tópicos contêm apenas algumas postagens.

Você tem alguma sugestão sobre o que podemos verificar para encontrar a causa desse problema? É possível que tenhamos um problema com o banco de dados (índice/estatísticas ausentes)?

Agradecemos antecipadamente pelo seu apoio.

1 curtida

Houve alguns commits no beta3 que apresentaram problemas de desempenho. Você provavelmente deveria atualizar.

Observação: Atualização do PostgreSQL 15 complica a atualização.

1 curtida

Obrigado pelo conselho de atualizar para a versão 3.4.0.beta4. Devido à mudança do PostgreSQL para a versão 15, precisamos de um tempo de manutenção mais longo. Mas faz sentido fazer a atualização nos próximos dias para ver se isso resolve o nosso problema.

Ficamos um pouco surpresos com a atualização do PostgreSQL. Fizemos a atualização do nosso sistema de teste para a versão 3.4.0.beta3 alguns dias antes e não tivemos problemas. Quando fizemos a atualização do sistema de produção, a atualização do banco de dados fez parte do processo de repente. Não estávamos preparados para isso e pulamos a atualização do banco de dados. Portanto, temos que fazê-la junto com a versão 3.4.0.beta4 ou como um passo separado antes.

É possível que a atualização do banco de dados pulada esteja causando nossos problemas de desempenho? Existe uma maneira fácil de verificar se os índices e estatísticas do banco de dados estão corretos?

Provavelmente não.

Você pode executar os comandos vacuum e reindex sugeridos no tópico de atualização do PG a qualquer momento.