Решение серьезных проблем с производительностью в последней версии Discourse?

Можете нажать на значок miniprofiler и показать нам результат?

Я прикрепил все 7 записей MiniProfiler, отображаемых в выпадающем списке.

Для улучшения производительности при первоначальной загрузке вам необходимы HTTPS и HTTP/2. Они уже предварительно настроены «из коробки» для каждой новой установки в соответствии с нашим руководством, однако вам потребуется правильно настроить ваш обратный прокси для их работы.

Похоже, у вас есть конкуренция за ресурсы процессора:

image

Какие процессоры выделены на сервере, какова их скорость и есть ли конкуренция за ресурсы на гостевой или хост-системе? Именно с этого я бы начал поиск. Время выполнения действий latest.json на следующих двух скриншотах должно быть значительно меньше.

Кроме того, при включённых заголовках производительности вы сможете видеть статистику производительности для каждого запроса в заголовках ответа. Вот пример для /latest.json на небольшом сайте:

x-runtime: 0.053864
x-redis-calls: 3
x-redis-time: 0.000615
x-sql-calls: 12
x-sql-time: 0.012697
x-queue-time: 0.001498

Это может помочь вам определить, где вы тратите время на ожидание SQL/Redis или на обработку данных в приложении.

Вы можете получить снимок активности контейнера machine по адресу /admin/upgrade#/processes
(все ваши процессы, отсортированные по использованию физической памяти, но с включением других статистических данных)

Обратите внимание, что это покажет вам только процессы внутри контейнера; нас также интересуют вся машина и хост виртуальной машины.

Спасибо. См. также связанную тему Понижение версии развёртывания Discourse, которую можно рассматривать как попытку сложного обходного решения.

В первом снимке miniprofiler выше я вижу, что ‘Redirect’ занимает 527 мс. Это кажется слишком много.

Я вижу, что это внутренний хост, и вы обращаетесь к нему по IP-адресу?

Да, пока я получаю к нему доступ по IP-адресу. После завершения настройки для повышения производительности на него будет указывать URL.

Я включил заголовки производительности. Где отображаются упомянутые вами результаты? В статистике MiniProfiler?

Эти заголовки присутствуют в HTTP-ответе для каждого запроса.