升级到 3.3.0.beta3-dev 后的极限负载错误(本地部署)

昨天升级到了 3.3.0.beta3-dev,并且安装了 AI 插件。该插件目前仅对员工(5 人)启用。

但整个网站运行缓慢,我遇到了严重的负载错误。我似乎无法弄清楚是什么原因造成的,我的服务器负载看起来还可以。

有没有什么地方可以帮助我找出原因?

我在爬虫报告中看到这些,不确定是好是坏,也没有参考标准。

查看我的服务器,看起来独角兽进程相当繁忙

这是原因吗?我需要更多的 CPU 吗?还是只需要更多的独角兽?

自上次升级以来是否已有一段时间?也许它正在进行某种图像处理或重新烘烤。

您可以查看 /sidekiq 来了解它在做什么。

队列为空

我不太清楚剩下的意思。

我不确定这里有什么是正常的……这是我们的服务器规格
image

重启了所有东西后一切恢复正常,但现在我们又遇到了极大的负载。我无法弄清楚问题出在哪里,Discourse 中有什么工具可以帮助吗?

所以这 3 个独角兽工作者
image

很忙……但据我所知,我们的流量并没有比平时高,和以前差不多。唯一的变化是升级到了 3.3.0 并添加了 AI 插件,但它只对员工可用。

问题始于昨天 6/3

我们似乎确实有更多的爬虫。

这是过去一个月的爬虫数据,但同样,似乎也没有高出多少。网站几乎无法使用。

任何帮助都将不胜感激!

这是一个猜测,但 Sidekiq 日志中唯一突出显示的是作业 NotifyMailingListSubscribers。该作业可能会产生大量请求。

另外,您在管理员/日志/错误日志页面上看到任何错误吗?

我为 Facebook 爬虫添加了一个阻止规则,因为那个家伙太疯狂了
image

但是,我注意到添加慢速/爬虫规则并没有更新我的 robots.txt

但 robots.txt 没有显示慢速条目,只显示阻止条目。

有相当多的这些

我看到 3 个错误,但它们似乎不相关……(尽管很难说)

Job exception: PG::DatetimeFieldOverflow: ERROR:  timestamp out of range: \"271768-09-23 06:24:11.793040 BC\"
LINE 1: ...sers\".\"moderator\" = FALSE AND (users.created_at < '271768-09...
                                                             ^
ActionDispatch::RemoteIp::IpSpoofAttackError (IP 欺骗攻击?!HTTP_CLIENT_IP=\"10.10.121.119\" HTTP_X_FORWARDED_FOR=\"14.140.10.244, 14.140.10.244\")
app/controllers/topics_controller.rb:1298:in `track_visit_to_topic'
app/controllers/topics_controller.rb:169:in `show'
app/controllers/application_controller.rb:422:in `block in with_resolved_locale'
app/controllers/application_controller.rb:422:in `with_resolved_locale'
lib/middleware/omniauth_bypass_middleware.rb:64:in `call'
lib/content_security_policy/middleware.rb:12:in `call'
lib/middleware/anonymous_cache.rb:391:in `call'
lib/middleware/csp_script_nonce_injector.rb:12:in `call'
config/initializers/008-rack-cors.rb:14:in `call'
config/initializers/100-quiet_logger.rb:20:in `call'
config/initializers/100-silence_logger.rb:29:in `call'
lib/middleware/enforce_hostname.rb:24:in `call'
lib/middleware/request_tracker.rb:291:in `call'

还有另一个关于 SMTP 的 job exception

Discourse 有自己的速率限制,不依赖 robots.txt

迈克尔,谢谢你,

你还有其他想法吗?多旋转一些独角兽会有帮助吗?

这是在 app.yml 中完成的吗?

是的,这可能会有帮助。

env:
  UNICORN_WORKERS: 8

在 app.yml 中进行设置即可。

我建议使用 prometheus 插件 来获取性能数据(如果你已设置该插件),或者你也可以使用 性能标头

分析你的 Web 日志应该能很大程度上帮助你找出服务器繁忙的原因;看起来爬虫是一个不错的起点。

2 个赞

已将实例升级到新的 DigitalOcean 实例,内存和 CPU 翻倍。增加了 8 个 unicorn(之前是 3 个),执行了数据库重新索引和 vacuum 操作,我认为我们又可以正常运行了!

感谢您的帮助。

3 个赞

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.