Discourse docker 自动宕机问题

大家好,我的帖子在 Discourse 论坛上被自动删除了。

有时我也会遇到 502 Bad Gateway 错误。

unicorn.stderr.log 内容如下:

D, [2020-07-15T16:29:57.037389 #32767] DEBUG -- : 等待挂起/休眠后 16.0 秒
E, [2020-07-15T18:49:48.649399 #32767] ERROR -- : worker=0 PID:8593 超时(31s > 30s),正在终止
E, [2020-07-15T18:49:50.220209 #32767] ERROR -- : 回收 #<Process::Status: pid 8593 SIGKILL (signal 9)> worker=0
E, [2020-07-15T18:50:25.881312 #32767] ERROR -- : worker=2 PID:13929 超时(31s > 30s),正在终止
E, [2020-07-15T18:50:25.881493 #32767] ERROR -- : worker=1 PID:32508 超时(31s > 30s),正在终止
E, [2020-07-15T18:50:25.949739 #32767] ERROR -- : 回收 #<Process::Status: pid 13929 SIGKILL (signal 9)> worker=2
E, [2020-07-15T18:50:25.949869 #32767] ERROR -- : 回收 #<Process::Status: pid 32508 SIGKILL (signal 9)> worker=1
I, [2020-07-15T18:51:00.385865 #19149]  INFO -- : worker=0 已就绪
I, [2020-07-15T18:51:00.385899 #19193]  INFO -- : worker=2 已就绪
I, [2020-07-15T18:51:00.385899 #19189]  INFO -- : worker=1 已就绪
E, [2020-07-15T18:51:44.033303 #32767] ERROR -- : worker=2 PID:19193 超时(31s > 30s),正在终止
E, [2020-07-15T18:51:44.051941 #32767] ERROR -- : 回收 #<Process::Status: pid 19193 SIGKILL (signal 9)> worker=2
I, [2020-07-15T18:51:49.476608 #19302]  INFO -- : worker=2 已就绪
E, [2020-07-15T18:51:55.064179 #32767] ERROR -- : worker=1 PID:19189 超时(31s > 30s),正在终止
E, [2020-07-15T18:51:55.085863 #32767] ERROR -- : 回收 #<Process::Status: pid 19189 SIGKILL (signal 9)> worker=1
I, [2020-07-15T18:52:00.812373 #19324]  INFO -- : worker=1 已就绪

这意味着您的 Web 进程响应时间超过了 30 秒。您能否移除所有自定义插件并重新构建?

已启动 ./launcher rebuild app
仅有一个 Docker 管理器插件!

你的服务器是什么?速度很慢吗?内存有多少?使用的是 SSD 还是机械硬盘?数据库有多大?

系统运行正常
信息
CPU:50% i3 4 核
/ 分区磁盘使用率:1.79TB 中的 7.9%
内存使用率:61% 8GB
交换空间使用率:19% 4GB

我已重建应用完成

 new_subscriber_thread'"] 
I, [2020-07-15T19:56:10.094624 #72]  INFO -- : 正在刷新 Gem 列表
I, [2020-07-15T19:56:41.824138 #72]  INFO -- : 正在监听 addr=127.0.0.1:3000 fd=9
I, [2020-07-15T19:57:06.077895 #72]  INFO -- : 主进程已就绪
I, [2020-07-15T19:57:17.979526 #229]  INFO -- : worker=2 已就绪
I, [2020-07-15T19:57:17.979509 #218]  INFO -- : worker=1 已就绪
I, [2020-07-15T19:57:17.979637 #241]  INFO -- : worker=3 已就绪
I, [2020-07-15T19:57:17.979868 #211]  INFO -- : worker=0 已就绪

我的问题仍然存在

tail -100 unicorn.stderr.log
    I, [2020-07-16T07:51:49.785061 #72] INFO -- : master 已完成日志重新打开

    I, [2020-07-16T07:52:05.423701 #18420] INFO -- : worker=3 已完成日志重新打开

    I, [2020-07-16T07:52:05.439574 #10177] INFO -- : worker=2 已完成日志重新打开

    I, [2020-07-16T07:52:06.614121 #11282] INFO -- : worker=1 已完成日志重新打开

    I, [2020-07-16T07:52:06.626403 #30350] INFO -- : worker=0 已完成日志重新打开

    E, [2020-07-16T13:43:49.118620 #72] ERROR -- : worker=1 PID:11282 超时(31s > 30s),正在终止

    E, [2020-07-16T13:43:49.325644 #72] ERROR -- : 回收了 #<Process::Status: pid 11282 SIGKILL (signal 9)> worker=1

    D, [2020-07-16T13:44:19.448200 #72] DEBUG -- : 挂起/休眠后等待 16.0 秒

    I, [2020-07-16T13:44:31.441735 #10639] INFO -- : worker=1 已就绪

    E, [2020-07-16T14:24:40.454209 #72] ERROR -- : worker=1 PID:10639 超时(31s > 30s),正在终止

    E, [2020-07-16T14:24:40.611580 #72] ERROR -- : 回收了 #<Process::Status: pid 10639 SIGKILL (signal 9)> worker=1

    D, [2020-07-16T14:25:10.744135 #72] DEBUG -- : 挂起/休眠后等待 16.0 秒

    I, [2020-07-16T14:25:14.973408 #13472] INFO -- : worker=1 已就绪

    E, [2020-07-16T16:03:01.918109 #72] ERROR -- : worker=2 PID:10177 超时(31s > 30s),正在终止

    E, [2020-07-16T16:03:02.200133 #72] ERROR -- : 回收了 #<Process::Status: pid 10177 SIGKILL (signal 9)> worker=2

    I, [2020-07-16T16:03:51.690756 #20266] INFO -- : worker=2 已就绪

    E, [2020-07-16T18:29:27.607372 #72] ERROR -- : worker=1 PID:13472 超时(31s > 30s),正在终止

    E, [2020-07-16T18:29:27.831050 #72] ERROR -- : 回收了 #<Process::Status: pid 13472 SIGKILL (signal 9)> worker=1

    I, [2020-07-16T18:29:59.339086 #30397] INFO -- : worker=1 已就绪

    E, [2020-07-16T18:51:56.470192 #72] ERROR -- : worker=0 PID:30350 超时(31s > 30s),正在终止

    E, [2020-07-16T18:51:57.004078 #72] ERROR -- : 回收了 #<Process::Status: pid 30350 SIGKILL (signal 9)> worker=0

    I, [2020-07-16T18:52:43.150079 #31968] INFO -- : worker=0 已就绪
D, [2020-07-16T19:13:52.263197 #72] DEBUG -- : 挂起/休眠后等待 16.0 秒

你能回答 Jay 其余的问题吗?

这是 SSD 吗?2TB 的容量暗示这可能是一块传统的机械 SATA 硬盘,其速度太慢,无法用于 Discourse。

是的,2TB SATA 硬盘通常运行速度很快,但目前已宕机。

https://forum.wishl.net/

SSD 是最低要求,并在 Discourse 需求文档中有所说明。您将需要 SSD,如果您使用的是机械硬盘,我们无法提供帮助。

你能进入容器并查看其他日志吗?

我猜是 PostgreSQL 启动失败,请重点排查这个问题。

你好,应该查看哪个日志文件?

如果有帮助的话,我协助管理的 Discourse 服务器 在过去一个月左右开始频繁出现 502 网关错误。服务器和我本人都位于德国。这不可能是最近的 Discourse 回归问题,因为我们已经数月未进行升级。我们使用的是非常基础的托管平台合同。此外,即使服务器能够成功连接,现在的响应速度也非常慢。我目前无法合理解释这种服务降级现象,原本以为只是因为我们选择了廉价套餐。但在阅读了这个讨论串后,或许还有其他可能的解释?R。

谢谢您的回答。
服务器已迁移至 SSD,问题已解决。

你好!你能告诉我使用固态硬盘(SSD)能否提升性能吗?谢谢!

SSD 的速度远快于旋转式磁碟。业界普遍认为必须使用 SSD,尽管我知道有一个规模较大的网站曾使用过磁碟。为此,核心代码至少进行了一次修改以提供支持,配置过程耗时数周。如果您坚持使用磁碟,则需要更多内存来提供更大的缓存。这确实不推荐。