在更新到最新版本的 Discourse 后,我们遇到了一个奇怪的问题,nginx 出现 502 错误。
有些用户发帖时会收到 502 错误,有些则不会。有些个人资料会显示 502,有些则不会。
CPU 使用率约为 10% 到 25%,RAM 使用率也约为 20%。
我尝试禁用我们的 5 个插件,结果相同。
我应该查看哪些日志来找出导致这些 502 错误的原因?
在更新到最新版本的 Discourse 后,我们遇到了一个奇怪的问题,nginx 出现 502 错误。
有些用户发帖时会收到 502 错误,有些则不会。有些个人资料会显示 502,有些则不会。
CPU 使用率约为 10% 到 25%,RAM 使用率也约为 20%。
我尝试禁用我们的 5 个插件,结果相同。
我应该查看哪些日志来找出导致这些 502 错误的原因?
我在 /var/log/nginx/error.log 中查找时,似乎随机出现了很多这样的错误,我猜这导致了 502。\n\n是超时还是什么?\n\n\n2025/04/29 18:11:50 [error] 617#617: *419 upstream prematurely closed connection while reading response header from upstream, client: <IP>, server: _, request: "POST /posts HTTP/2.0", upstream: "http://127.0.0.1:3000/posts", host: "forum.domain.com", referrer: "https://forum.domain.com/" \n
更新前的版本是什么?
非常旧,比如一年或更久。有没有什么地方可以查看我从哪个版本升级过来的日志?
也遇到了一些这种情况
*2 connect() failed (111: Connection refused) while connecting to upstream,
...
upstream: "http://127.0.0.1:3000/message-bus/92fd28cbf742...
看起来是随机的,有时一切都很快,我又能发帖了,然后又会变慢,502 错误又开始出现。
查看 postgres/current 日志
2025-04-29 18:48:24.709 UTC [1746] discourse@discourse LOG: 执行时间:606789.911毫秒 执行 unemapped: SELECT COUNT(*) FROM "posts" WHERE "posts"."deleted_at" IS NULL
执行时间:606789.911毫秒
我们确实有大量的帖子,用户很少……为什么这个查询会耗时60万毫秒?
是不是索引或其他问题导致查询缓慢?
我在 postgres 中选择了 discourse 表并执行了 REINDEX DATABASE discourse;,希望以此来提高速度。
我猜这会花费很长时间。
您是否遵循了PostgreSQL 15 更新中的建议?您也可以对数据库进行 VACUUM 操作。
我没有,我确实有一个 postgres_data_old 文件夹(虽然它在不同于那篇文章的目录中)。
但是,然后文章说;
“如果你在使用带有专用数据容器的设置”,我猜这意味着 PostgreSQL 在一个专用的 Docker 容器中运行?
我们的运行在同一实例上,所以不太确定从那里开始该怎么做,看起来没有“如果不是”这样的条件?
这个文件夹的存在是否意味着转换已经完成,或者其他什么含义?
您可以在 /var/discourse/shared/standalone/postgres_data/PG_VERSION 检查 Postgres 的版本 – 如果您进行了命令行升级,可能它已完成升级而您未注意到(但您必须运行过两次重建)。如果您是通过网页界面升级的,建议如果您的操作系统和 Docker 版本较新,可以直接进行命令行重建。
版本是 15。
在我运行 vacuum 命令后,情况似乎好多了。
发帖工作正常,而且似乎很快,但当管理员尝试点击用户个人资料、进入他们的个人资料时,仍然出现 502 错误,似乎是超时了?
有什么办法可以加快数据库的这部分速度吗?
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.