Я пытался найти информацию по этому вопросу, но ничего свежего не обнаружил, поэтому решил спросить, чтобы понять, что является нормой и чего следует ожидать.
Недавно я перешёл с других форумов. Там первая загрузка страницы происходит достаточно быстро, но в Discourse страница загружается, а затем появляется вращающийся кружок, пока она отрисовывается. Я не уверен, связано ли это с задержкой на стороне сервера или с задержкой на стороне клиента (JavaScript) при построении страницы на основе полученных данных с сервера.
Задержка составляет около 5–10 секунд, но после этого производительность в целом нормальная.
Если проблема, скорее всего, связана с сервером или хостингом, в чём обычно заключается причина? Показатели по всем параметрам выглядят низкими: процессор, диск и память не загружены на максимум, поэтому непонятно, куда стоит инвестировать средства, если проблема не связана с сервером. Есть ли какие-либо советы по мониторингу или отслеживанию метрик, которые помогут понять, на что Discourse тратит время в ожидании чего-либо?
Последняя версия 2.8.x и всего около 30 пользователей. Я работаю на виртуальном процессоре с двумя ядрами, 2 ГБ оперативной памяти и SSD-диске.
Как уже упоминалось, все метрики на сервере показывают отсутствие нагрузки, поэтому я не понимаю, почему перед полной отрисовкой страницы происходит 5-секундное вращение.
Так что, нечего проверять или отслеживать — просто установите и молитесь, чтобы всё было в порядке??
На самом деле, скорее всего, сервер «засыпает», и я просто обновляю страницу, которая не запрашивалась уже давно. Неужели бэкенд-компоненты переходят в спящий режим, из-за чего редкое использование приводит к тому, что первый пользователь вынужден ждать чуть дольше обычного?
Когда вы говорите о 30 пользователях, вы имеете в виду одновременных или это вся база пользователей?
Если речь о 30 одновременных пользователях, то ваши спецификации могут быть даже немного занижены.
Какой уровень использования памяти в среднем? 30–50–80%???
Случайно я просматривал графики скорости и производительности в Google Analytics и заметил изменения после перехода с версии 2.2 на 2.9 — ухудшение, хотя мне нужно изучить это подробнее. На самом деле я не замечаю заметного замедления, скорее наоборот, всё кажется даже быстрее. Так что я знаю? Или что знает Google Analytics, а?
Также я читал о лимите в 10 тысяч сообщений на тему: если сообщений много, то, как я понимаю, система загружает всё в память перед отображением, и это воспринимается как замедление при первом просмотре.
Я заметил, что после загрузки всё работает быстро. Я не эксперт, но проблема может быть и в браузере, а также в различных уловках, применяемых для обеспечения работы платформы Discourse.
Это VPS на хостинге или что-то другое? Как он был установлен? Знание того, какой именно 2-ядерный процессор используется, полезно — не все процессоры одинаковы.
Между инстансом и клиентами есть что-то промежуточное? Обратный прокси или что-то вроде CloudFlare?
Наконец-то я открыл Инструменты разработчика и увидел несколько сообщений об ошибках… Похоже, что а) шрифты отсутствуют или не найдены, и б) используется IP-адрес вместо правильного FQDN — при этом я не уверен, корректен ли этот IP-адрес.
Событие FetchEvent для "https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9" завершилось ошибкой сети: промис был отклонён.
Promise.then (async)
(anonymous) @ Router.mjs:60
Событие FetchEvent для "https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9" завершилось ошибкой сети: промис был отклонён.
Promise.then (async)
(anonymous) @ Router.mjs:60
NetworkFirst.mjs:167 Необрабатываемое исключение (в промисе): no-response: no-response :: [{"url":"https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9"}]
at a.makeRequest (https://community.hubivue.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)
makeRequest @ NetworkFirst.mjs:167
color_definitions_light_4_1_530ebcc4a553d42866a6f343d784841cf5c0b816.css:1 GET https://35.212.139.150/fonts/Roboto-Regular.ttf?v=0.0.9 net::ERR_FAILED
NetworkFirst.mjs:167 Необрабатываемое исключение (в промисе): no-response: no-response :: [{"url":"https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9"}]
at a.makeRequest (https://community.hubivue.com/javascripts/workbox/workbox-strategies.prod.js:1:2145)
makeRequest @ NetworkFirst.mjs:167
color_definitions_light_4_1_530ebcc4a553d42866a6f343d784841cf5c0b816.css:1 GET https://35.212.139.150/fonts/Roboto-Bold.ttf?v=0.0.9 net::ERR_FAILED
Далеко… Я сбросил выбор шрифтов на значения по умолчанию (то есть Arial), и всё работает нормально. Похоже, это баг или что-то не так с выбором шрифтов в настройках. Дело закрыто, и я пока буду пользоваться Arial.
Это зависит от того, как они перешли на использование имени хоста после попытки использовать IP-адрес.
Установка выполнялась ли по шагам из руководства «Стандартная установка»? Я бы поговорил с тем, кто настраивал этот экземпляр, чтобы выяснить, что именно было сделано. Возможно, IP-адрес всё ещё упоминается в других местах.
Есть ли команда, чтобы сбросить установку обратно или исправить это? Кажется глупым, что имя хоста нельзя изменить ни разу. Это ограничение задумано так?
Обратите внимание, что производительность в порядке, теперь когда используются базовые шрифты — проблема, похоже, связана с использованием шрифтов Google Roboto.
Попытка не пытка, но если вы не знакомы с историей этого экземпляра, мы не сможем даже подтвердить, что используете официально поддерживаемую установку.