Недавно наш форум на Discourse начал выдавать тайм-ауты на большинстве запросов: https://caddy.community
Никаких обновлений или изменений не вносилось, когда это началось несколько дней назад. Иногда всё загружается нормально, но через несколько минут загрузка занимает минуты. (Если ссылка выше загружается быстро у вас, попробуйте снова через несколько минут. Также можно попробовать через curl.)
Мы размещены на DigitalOcean.
Ресурсы машины не исчерпаны: доступно достаточно CPU, RAM, дискового пространства и сетевого ввода-вывода.
В логах нет ошибок, и на машине не запущено никаких неизвестных процессов. Форум работал без проблем около 3 лет, но теперь не загружается.
Кто-нибудь знает, как ускорить работу форума? Мы перезагрузили машину, но форум всё ещё работает медленно.
Хм… черт, сегодня загружается быстрее. (У других в нашем сообществе тоже такое было, я знаю, что не только у меня, ха-ха — но, похоже, это происходит с перебоями.)
Хм, похоже, что мои подключения по ssh тоже иногда завершаются по тайм-ауту.
Интересно, нет ли у DigitalOcean проблем с сетью (хотя они пока ничего не сообщали) — возможно, придётся открыть тикет в DO, чтобы выяснить. Возможно, это не специфично для Discourse.
Время, затраченное на работу с Redis, не учитывается и может вызывать наблюдаемую вами ситуацию. Вам нужно заглянуть на сервер и проверить, не возникают ли у Redis проблемы с сохранением изменений на диск.
Позвольте мне немного поправить себя. Время, затраченное на Redis, не будет отображаться в детализированной части MiniProfiler, но будет учтено в общем времени в первой колонке. Поэтому, судя по вашему скриншоту, это не так.
Фиксирует ли Caddy время ожидания бэкенда и общее время, затраченное на каждый запрос? Возможно, реверс-прокси просто ждал?
Может быть, это время, которое требуется для загрузки статических ресурсов? В следующий раз, когда это произойдет, попробуйте посмотреть в инструментах разработчика Chrome?
Спасибо за идею, Сэм. Я уже смотрел в инспектор сети, но не припоминаю ничего особенно показательного — однако в следующий раз проверю его более внимательно.
Это обычно случается раз в несколько дней, я сообщу, когда это произойдёт!