Jobs::PeriodicalUpdates является причиной высокой загрузки ЦП (более 100%)

Jobs::PeriodicalUpdates является причиной высокой нагрузки на процессор (более 100%)

При проверке: sidekiq/scheduler/history

Я вижу, что Jobs::PeriodicalUpdates достиг 79 секунд. Это вызывает увеличение нагрузки на процессор, и пользователи, обращающиеся к веб-сайту, отключаются.

Имеет ли отключение Jobs::PeriodicalUpdates какой-либо эффект? Как его отключить?
Кроме того, Jobs::AboutStats; Jobs::DestroyOldDeletionStubs; Jobs::DirectoryRefreshDaily; Jobs::EnsureDbConsistency также вызывают высокую нагрузку на процессор, превышающую 100%.

Как мне решить эти проблемы?

Какое у вас оборудование, оперативная память, SSD? Каков размер вашей базы данных? Сколько постов?

У нас около 600 тысяч тем.
400 ГБ SSD, 16-ядерный процессор. По поводу оперативной памяти — я не вижу полного заполнения.

При пересборке Discourse я получаю эти ошибки (до пересборки всё работало нормально).

Хм. Это странно. Возможно, это ошибка.

Надеюсь, всем поможет.
Может кто-нибудь сказать:

в задаче Jobs::PeriodicalUpdates
Как вы думаете, что означает Jobs::PeriodicalUpdates?
Возможно ли отключить Jobs::PeriodicalUpdates?

Думаю, это список задач, используемых этой задачей: discourse/app/jobs/scheduled/periodical_updates.rb at 1472e47aae5bfdfb6fd9abfe89beb186c751f514 · discourse/discourse · GitHub

Я не эксперт в анализе этого, но вижу упомянутые два параметра:

  • automatically download gravatars — не думаю, что это может объяснить высокую загрузку процессора.
  • rebake_old_posts_count — этот параметр сейчас скрыт, но возможно, вы настраивали переработку большого количества старых постов каждые 15 минут несколько месяцев назад. Это могло бы немного лучше объяснить такую нагрузку на процессор.

Понятно, через 15 минут запускаются периодические обновления.

Если это причина, как отключить: rebake_old_posts_count?

Это было первое обновление за долгое время? Я думаю, что вы, скорее всего, меняете размер изображений из-за изменений, произошедших некоторое время назад. Всё будет работать ещё дольше.

Мое последнее обновление было до версии 2.7.x (я не помню точное число после точки)

Надеюсь, кто-нибудь сможет помочь.

Вы не можете его отключить. Произошли изменения, требующие пересборки. Если у вас достаточно ресурсов, вы, возможно, сможете настроить параметры для улучшения производительности.

:slight_smile: Я уверен, что способ обработать ошибку существует, просто мой уровень знаний в технологиях ограничен.

Вы запустили discourse-setup после того, как на этом сервере появились эти ресурсы? Возможно, он не использует их максимально эффективно.

Но я почти уверен, что задачи, которые он выполняет, необходимо выполнять, поэтому отключать их не стоит.

Теперь rebake_old_posts_count скрыт. Как сделать его видимым? Я хочу уменьшить это значение.