CPU, память и swap на 100%

Недавно на моём форуме Discourse стал появляться HTTP-ошибка 500. Я размещён на Droplet от Digital Ocean и проверил, что загрузка CPU, диска и памяти постоянно составляет 100%.

Перезагрузка Droplet временно решает эту проблему, и я снова могу получить доступ к форуму, но не понимаю, что вызывает такую нагрузку на систему, так как на форуме не так много активности.

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

Ваш форум недавно стал очень активным? Если процессор постоянно загружен на 100%, это может указывать на то, что выполняется множество фоновых задач. Какие характеристики у вашего droplet? Рассматривали ли вы возможность его апгрейда, чтобы проверить, решит ли это проблему?

Здравствуйте,

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

Это конфигурация с 1 vCPU, 2 ГБ ОЗУ и 50 ГБ диска, которой было более чем достаточно на момент запуска, когда пользовательская активность была значительно выше.

Я бы сказал, что стоит попробовать обновить Discourse до последней версии или изучить логи, чтобы найти причину проблемы.

Пытаюсь сначала обновить Docker Manager, но проблема с сервером мешает завершению процесса (я оставил его работать на выходные, но обновление так и не произошло.

Редактирование: Посмотрел логи и обнаружил некоторые проблемы:

Попробуйте обновить через командную строку:

cd /var/discourse
./launcher rebuild app

Обновление оболочки и удаление множества задач повторных попыток в Sidekiq (ошибка SSL с SMTP, не соответствующая веб-сайту) привело к резкому падению.

Теперь возникла новая ошибка, над которой я буду работать.

Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout с #TCPSocket:(closed)