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 も 100% を超える高 CPU の原因となっています。

これらのエラーを解決するにはどうすればよいですか?

ハードウェア、RAM、SSDは何ですか?データベースのサイズはどのくらいですか?投稿数はいくつですか?

約60万件のトピックがあります。
400GB SSD、16コアCPU。RAMについては、満杯ではないようです。

Discourseを再構築した際に、これらのエラーが発生しました(再構築前は問題ありませんでした)。

「いいね!」 1

うーん。それは奇妙ですね。バグかもしれません。

皆さん、ご協力お願いします。
教えていただけますか?

Jobs::PeriodicalUpdates . task
この Jobs::PeriodicalUpdates は何を意味すると思いますか?
Jobs::PeriodicalUpdates を無効にすることは可能ですか?

このジョブで使用されているタスクのリストは次のとおりだと思います: discourse/app/jobs/scheduled/periodical_updates.rb at 1472e47aae5bfdfb6fd9abfe89beb186c751f514 · discourse/discourse · GitHub

私はこれを分析する専門家ではありませんが、2つの設定が言及されているのを見ました。

  • automatically download gravatars (自動的にグラバターをダウンロードする): これがCPU使用率の高さを説明するとは思えません。
  • rebake_old_posts_count (古い投稿の再ベイク数): これは現在非表示になっていますが、数か月前に15分ごとに多くの古い投稿を再ベイクするように設定した可能性があります。これはCPU使用率をもう少し説明できるかもしれません。

15分後、periodicupdates が実行されているのを確認しました。

これが原因の場合、rebake_old_posts_count をオフにするにはどうすればよいですか?

しばらくぶりの最初のアップグレードでしたか?以前の変更により、画像をリサイズしている可能性が高いと思います。それは長い間、より良い結果をもたらすでしょう。

私の最後のアップグレードは2.7.xでした(正確な数字は覚えていません)

誰か助けてくれると嬉しいです。

オフにすることはできません。再ベイクが必要な変更がありました。リソースが十分にあれば、パフォーマンスを向上させるために調整できる可能性があります。

「いいね!」 1

:slight_smile: エラーを処理する方法があると思いますが、
私の技術レベルが限られているだけです。

これらのリソースをサーバーに追加した後、discourse-setup を実行しましたか?リソースを最大限に活用できていない可能性があります。

しかし、実行されているジョブは必要不可欠なものであると確信しているため、無効にしたくはないはずです。

rebake_old_posts_count が非表示になりましたが、どうすれば表示できますか?値を減らしたいです。