长时间运行移动帖子 / 超时错误

我们正在运行一个自托管的 Discourse 论坛(tff-forum.de),拥有超过 400 万个帖子和许多大型主题。

自上次更新到 3.4.0.beta3 版本以来,我们在将帖子从一个主题移动到另一个主题时遇到了 15 到 20 秒的长运行时间。

在某些情况下,该功能会因错误而终止,日志显示以下消息:

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

在更新之前,我们只在将帖子移动到非常大的主题之间时遇到问题。现在,即使主题只包含少量帖子,该功能有时也会终止。

您有什么建议可以检查以找出问题的原因吗?是否可能是数据库问题(缺少索引/统计信息)?

提前感谢您的支持。

1 个赞

beta3 中有一些提交存在性能问题。您可能需要进行升级。

注意:PostgreSQL 15 更新使升级过程变得复杂。

1 个赞

感谢您关于更新到 3.4.0.beta4 的建议。由于 PostgreSQL 已更改为 15 版本,我们需要更长的维护时段。但在接下来的几天内进行更新以查看这是否能解决我们问题是有意义的。

我们对 PostgreSQL 更新感到有些惊讶。几天前,我们将测试系统更新到了 3.4.0.beta3,没有遇到任何问题。当我们在生产系统上进行更新时,数据库更新突然成为该过程的一部分。我们对此没有准备,因此跳过了数据库更新。所以我们必须在 3.4.0.beta4 版本中一起进行,或者在此之前单独进行。

被跳过的数据库更新是否会导致我们的性能问题?是否有简单的方法可以检查数据库索引和统计信息是否正确?

可能不会。

您可以随时在 PG 更新主题中执行建议的 vacuum 和 reindex 命令。