Недавно на моём форуме Discourse стал появляться HTTP-ошибка 500. Я размещён на Droplet от Digital Ocean и проверил, что загрузка CPU, диска и памяти постоянно составляет 100%.
Перезагрузка Droplet временно решает эту проблему, и я снова могу получить доступ к форуму, но не понимаю, что вызывает такую нагрузку на систему, так как на форуме не так много активности.
Я зашёл в консоль и обнаружил, что Swap-память также полностью исчерпана, но не могу определить причину проблемы. Есть ли какие-либо предложения, куда стоит посмотреть?
Ваш форум недавно стал очень активным? Если процессор постоянно загружен на 100%, это может указывать на то, что выполняется множество фоновых задач. Какие характеристики у вашего droplet? Рассматривали ли вы возможность его апгрейда, чтобы проверить, решит ли это проблему?
Нет, у нас не было никакого всплеска пользователей или активности. В течение некоторого времени всё было довольно неактивно, поэтому меня удивляет, что дроплет работает с такой загрузкой.
Это конфигурация с 1 vCPU, 2 ГБ ОЗУ и 50 ГБ диска, которой было более чем достаточно на момент запуска, когда пользовательская активность была значительно выше.
Пытаюсь сначала обновить Docker Manager, но проблема с сервером мешает завершению процесса (я оставил его работать на выходные, но обновление так и не произошло.
Редактирование: Посмотрел логи и обнаружил некоторые проблемы:
Обновление оболочки и удаление множества задач повторных попыток в Sidekiq (ошибка SSL с SMTP, не соответствующая веб-сайту) привело к резкому падению.
Теперь возникла новая ошибка, над которой я буду работать.
Jobs::HandledExceptionWrapper: Wrapped Net::ReadTimeout: Net::ReadTimeout с #TCPSocket:(closed)