Jobs::PeriodicalUpdates 是导致高 CPU(超过 100%)的原因

Jobs::PeriodicalUpdates 是导致 CPU 过高(超过 100%)的原因

当我们检查:sidekiq/scheduler/history

我看到 Jobs::PeriodicalUpdates 达到了 79 秒。导致 CPU 增加,访问网站的用户无法访问。

关闭 Jobs::PeriodicalUpdates 会有影响吗?如何关闭?
另外,Jobs::AboutStats;Jobs::DestroyOldDeletionStubs;Jobs::DirectoryRefreshDaily;Jobs::EnsureDbConsistency
也会导致 CPU 飙升至 100% 以上

如何解决这些错误?

您的硬件、内存、SSD 是什么?您的数据库有多大?有多少帖子?

我们大约有 60 万个主题。
400GB SSD,16 核 CPU。关于内存,我没有看到满。

重建 Discourse 时出现这些错误(重建前一切正常)。

1 个赞

嗯。这很奇怪。也许是个bug。

希望大家都能帮忙。
有人能告诉我:

在 Jobs::PeriodicalUpdates . task 中
您认为 Jobs::PeriodicalUpdates 是什么意思?
可以禁用 Jobs::PeriodicalUpdates 吗?

我认为这是此作业使用的任务列表:discourse/app/jobs/scheduled/periodical_updates.rb at 1472e47aae5bfdfb6fd9abfe89beb186c751f514 · discourse/discourse · GitHub

我不是分析这个的专家,我看到提到了两个设置

  • automatically download gravatars(自动下载gravatar),我认为这不会导致高 CPU 使用率
  • rebake_old_posts_count(重新烘焙旧帖子数量),这个现在被隐藏了,但也许你在几个月前设置了大量旧帖子每 15 分钟重新烘焙一次。这可以稍微解释一下 CPU 使用率。

15分钟后,periodicupdates 正在运行。

如果这是原因,我该如何关闭:rebake_old_posts_count?

这是很久以来的第一次升级吗?我认为你可能是因为很久以前的某个变化而调整图片大小。这会长期奏效。

我上次升级是 2.7.x(我不记得 x 的确切数字了)

希望有人能帮帮我

您无法将其关闭。已进行需要重新烘焙的更改。如果您有足够的资源,或许可以调整设置以提高性能。

1 个赞

:slight_smile: 我相信有一种方法可以处理错误,
只是我的技术水平有限。

您是否在服务器拥有这些资源后运行了 discourse-setup?它可能没有充分利用您的资源。

但我很确定它正在执行的任务是必须完成的,所以您不想关闭它们。

rebake_old_posts_count 现在是隐藏的,我该如何使其可见?我想减小该值。