Discourse 论坛挂起并超时,无法加载

最近,我们的 Discourse 论坛在大多数请求上开始出现超时:https://caddy.community

问题出现前几天,我们没有进行任何更新或更改。有时加载正常,但几分钟后加载时间会延长至数分钟。(因此,如果上述链接对您加载很快,请稍等几分钟后再次尝试。您也可以使用 curl 进行测试。)

我们托管在 DigitalOcean 上。

机器资源并未用满:CPU、内存、磁盘和网络 I/O 都有充足可用。

日志中没有错误,机器上也没有运行任何未知进程。该论坛已正常运行约三年,但现在无法加载。

有人知道如何让论坛运行得更快吗?我们已重启了机器,但论坛仍然运行缓慢。

@mholt :wave:

我尝试在 /latest/categories 之间来回切换,速度相当快。

你是否在应用的特定路由中观察到延迟?

另外,你是否启用了 MiniProfiler?

请按照以下步骤启用它:Long loading times for user summary page with slow database - #6 by Falco

启用后,当你遇到卡顿,就能准确定位问题所在。

嗯……哇,今天加载确实快多了。:thinking:(我们社区的其他人也遇到过这种情况,我知道不是只有我这样,哈哈——不过看起来是间歇性的。)

有机会我会试试,谢谢!

嗯,看来我的 ssh 连接有时也会超时。

不知道是不是 DigitalOcean 出现了网络问题(不过他们尚未发布任何公告)——我可能得向 DO 提交工单来查明原因。这可能并非 Discourse 特有的问题。

最近这个问题又开始出现了:论坛加载需要好几分钟。

到 DigitalOcean 虚拟机的 ping 延迟正常:约 80 毫秒。服务器负载也正常:

角落里的调试工具(MiniProfiler)显示的时间并未揭示任何问题:所有耗时均在约 300 毫秒以内:

(此页面加载耗时约 3 分钟。)

在连接到服务器到页面渲染完成的过程中,是否有某些环节未被 MiniProfiler 计入?

Redis 所花费的时间未被统计,这可能导致您看到的情况。您需要深入服务器检查 Redis 是否在将更改持久化到磁盘时遇到问题。

有意思,有什么建议或相关指南链接吗?这超出了我的专业范围😅

让我稍微纠正一下。Redis 的耗时不会显示在 MiniProfiler 的细分部分,而是会计入第一列的总耗时。因此,从您的截图来看,似乎并非如此。

Caddy 的日志是否记录了等待后端的时间以及每个请求的总耗时?反向代理是否存在等待的情况?

我会在日志中添加这些信息,并在下次发生时尝试查明原因。

这会不会是获取静态资源所花费的时间?下次遇到这种情况,不妨查看一下 Chrome 开发者工具?

谢谢你的建议,Sam。我之前看过网络检查器,不记得有什么特别明显的线索——不过下次我会更仔细地检查。

这种情况大概每隔几天就会发生一次,一旦再出现,我会回来汇报的!