Новичок в Discourse: установка работает медленно

Мы уже несколько месяцев используем экземпляр Discourse на форуме.hobbydb.com для поддержки нашей растущей базы данных коллекционных предметов с сообществом (заменив различные группы в Facebook). Хотя всё работает стабильно, мы заметили некоторые проблемы с производительностью — особенно в отношении показателей Lighthouse, которые сейчас находятся на уровне около 60%.

Немного контекста о нашей конфигурации:

  • Версия Discourse: 3.4.6 (последняя)
  • Развёртывание: Используем Helm-чарт Discourse от Bitnami
  • Инфраструктура: Полностью контейнеризированная, работает в Kubernetes
  • Характеристики: MS Azure 2xlarge (должно позволять автоматически масштабироваться до 6 ядер, 12 ГБ ОЗУ и до 2 ГБ для логов)

Мы пытаемся понять, где могут быть узкие места производительности, и как лучше оптимизировать наше развёртывание — особенно для фронтенд-производительности.

Сталкивался ли кто-нибудь с подобными проблемами при запуске Discourse в Kubernetes (особенно через Bitnami)? Есть ли рекомендации, советы или известные подводные камни, на которые стоит обратить внимание?

Будем признательны за любые советы или предложения — мы очень хотим улучшить опыт наших пользователей.

Привет, я просто хочу уточнить: страницы загружаются у пользователей довольно медленно? Или это просто показатели производительности выглядят хуже?

Это зависит от пользовательского опыта и сильно варьируется: иногда скорость приемлемая, а иногда загрузка страницы может занимать 20 секунд.

Неужели это проблема с сетью, например, сервер размещён в другом месте?

Да, ваш экземпляр работает очень медленно. Это нетипично.

Bitnami — это нестандартная установка от стороннего разработчика. Вы уже обсуждали эти проблемы в их сообществе?

Некоторые из этих онлайн-тестов не подходят для одностраничных приложений (таких как Discourse), потому что каждый клиент загружает большую часть JavaScript при первом посещении. После этого большинство переходов между страницами должны происходить почти мгновенно, так как многие элементы кэшируются, а с сервера при большинстве переходов запрашивается только некоторый специфический контент в формате JSON.

(Я считаю, что CDCK работает над распределением этой загрузки за пределы первой загрузки страницы, но это немного не по теме, и это не ваша проблема.)

Мои экземпляры размещены самостоятельно со стандартной установкой на очень скромном оборудовании (VPS с 4 ГБ ОЗУ) и работают :rocket:.

Наша инфраструктура находится в Azure, регион — США. Так что проблем быть не должно.

Полагаю, переход на стандартную установку теперь ещё более необходим.

На K8 и Bitnami вполне возможно добиться высокой производительности для Discourse.

Для Discourse (или любого приложения на RoR) важнее скорость работы одного ядра. Масштабирование становится критичным, когда ваш форум начинает получать значительный трафик.

Что показывает mini-profiler?