Вчера мы внедрили крупное улучшение производительности для сайтов с активной публикацией и большим количеством пользователей — это должно значительно помочь вашему сайту.
Отлично, мы изучим это и, возможно, протестируем.
Что ж, каждая игра — это отдельный случай. Сейчас, в условиях пандемии COVID (пустая арена) и почти случайного расписания игр, поведение аудитории невозможно предсказать или сравнить с историческими данными.
Исходя из этой одной игры, я не могу сказать, что данное изменение принесло нам значительное улучшение.
Первый период прошёл спокойно и нормально, но события во втором вызвали всплеск сообщений и увеличение числа наблюдателей. Около 60% наших пользователей сообщили о зависаниях.
В конфигурации с двумя серверами только web_only показывает высокое использование процессора и среднюю нагрузку.
Режим экстремальной нагрузки / только для чтения не был активирован, что хорошо, так как он создаёт наиболее болезненный пользовательский опыт. В целом аудитория быстро научилась заходить на главную страницу и возвращаться, чтобы продолжить обсуждение, что, в свою очередь, создаёт дополнительную нагрузку на сервер. Если бы только конечный пользователь мог каким-то образом получать уведомление о том, что его трафик ограничивается, он, скорее всего, стал бы действительно ждать минуту.
Отчет о прогрессе из приватных обсуждений: опыт был улучшен путем установки DISCOURSE_REJECT_MESSAGE_BUS_QUEUE_SECONDS в значение 4, и мы планируем внести некоторые изменения в ядро для улучшения поведения ограничения частоты запросов в message bus.
Поскольку мы сталкиваемся с некоторыми сходными ситуациями, как и @ljpp, хотя и в значительно меньшей степени (почти исключительно в течение примерно 5 минут вокруг времени окончания матчей), я хотел бы узнать, можно ли внести какие-либо корректировки в порог, при котором срабатывает сообщение о высокой нагрузке и пользователи начинают «выкидываться» из темы… потому что это всегда происходит в рамках одной темы — темы матча.
А также сообщение об ошибке 502 (чисто сообщение nginx), которое мы наблюдаем ещё реже в том же контексте. Я подозреваю, что, вероятно, в конфигурации nginx есть параметры, которые можно было бы оптимизировать, и я понимаю, что это не входит в ваши обязанности, но я с радостью выслушаю любые полезные предложения
.
Пожалуйста, уточните: у вас возникают зависания (тема не обновляется при появлении новых сообщений) или вы получаете сообщения об ошибке чрезмерной нагрузки?
В этой ветке есть настройки, которые помогают частично решить проблему с зависаниями, но они также увеличивают нагрузку на систему, поэтому вероятность возникновения сценариев с чрезмерной нагрузкой возрастает.
Иногда в таких ситуациях, о которых я сообщал, происходит заморозка тем. Однако в этом случае система также показывает предупреждения об экстремальной нагрузке. Поэтому я не могу точно сказать, что является причиной.
Нас не беспокоит экстремальная нагрузка, если она не выбрасывает пользователей из тем и не прерывает обновление новых сообщений. В таком случае мы предпочли бы, чтобы загрузка происходила медленно (колесо загрузки могло бы вращаться 15 секунд для каждого пользователя при чтении или публикации), чем заморозка или выброс пользователя.
Я должен согласиться. UX при экстремальной нагрузке запутан для конечного пользователя.
- Сколько у вас одновременных пользователей?
- Какое оборудование?
- Ссылка на статистику вашего форума?
Поскольку мы теперь на платформе CDCK SaaS, я могу оценить это только с точки зрения UX.
В последние пару недель в играх было много активности. «Зависания» практически исчезли после смены платформы, но есть эта флуктуация в том, как обновляются темы, что может всё ещё сбивать с толку некоторых пользователей. Однако аудитория в основном (90%) перестала жаловаться и сосредоточилась на играх, что является хорошим знаком.
Однако есть сценарий, который я могу воспроизвести с довольно высокой (снова 90%) уверенностью. Платформа иногда испытывает проблемы с возобновлением сессии, когда тема игры находится во фоновой вкладке (Android) или при заблокированном экране. Когда я возвращаюсь к активной теме, обычно из-за интересного события в игре, вид темы иногда не обновляется. Я вижу, как аватары пользователей мигают внизу темы, но сообщения не появляются. Чтобы полностью восстановить работу, нужно обновить браузер.
Сценарий воспроизведения не самый простой, так как требуется:
- Активная тема
- Активные действия в игре → больше активности в теме
- Удержание темы во фоновой вкладке браузера или при заблокированном экране.
У нас тоже возникает эта проблема.
Ещё один момент: при переходе к первому непрочитанному сообщению это поведение может повторяться несколько раз (переход к тому же «непрочитанному сообщению» несколько раз, хотя позиция первого непрочитанного сообщения должна была измениться в каждом случае).
Для примера:
- Я перехожу к первому непрочитанному сообщению.
- Прокручиваю и читаю 100 непрочитанных сообщений.
- Затем перехожу к другой теме или на главную страницу…
- Через минуту или около того появляется около 30 новых непрочитанных сообщений, но при нажатии на иконку меня снова перебрасывает к позиции из пункта 1 (то есть на 130 сообщений назад, а не просто к новым 30 непрочитанным).
Но, ещё раз, это происходит только в очень-очень активных темах в течение нескольких минут в самый пик активности, когда все пользователи одновременно обновляют и публикуют сообщения в одной и той же теме. Это немного раздражает, но пока не является критической проблемой.
Я бы счёл это успехом.
Можете ли вы предоставить воспроизведение этого на meta? Скорее всего нет, так как для этого требуется большое количество активных пользователей, находящихся в режиме ожидания в одной и той же теме одновременно?
Моя текущая мысль заключается в том, что нам следует создать функцию живого чата и инициализировать её по требованию, когда у вас есть…
-
много пользователей
-
в одной и той же теме
-
одновременно
-
тогда, и только тогда, создать оверлей окна живого чата и настоятельно предлагать пользователям использовать его вместо ответов, возможно, даже отключить возможность отвечать на тему с
Привет, похоже, что вы на самом деле хотели чат.. вот он, приятного времяпрепровождения! 
Да, я понимаю, о чём ты, но это так ограничено этими случаями, что, думаю, не стоит того. Обычно у нас такие матчи бывают раз или два в неделю, и в основном в 5-минутный период сразу после окончания матча. Но я на самом деле несколько раз думал об этом (что было бы здорово иметь функцию временного чата или переключение на эти 90-минутные периоды футбольного матча). ![]()
Всё же, я попробую воспроизвести это в один из дней, записав экран на некоторое время.
Наш инстанс начал выдавать ошибки 429 с момента начала плей-офф. @staff, вероятно, сможет увидеть их в логах за последние 3,5 часа, а их станет ещё больше, когда будет забит решающий гол (на момент написания этого сообщения игра уже перешла во второе овертайм).
В любом случае, если вы всё ещё ведёте логирование и трассировку, то возможностей осталось немного, так как финал и последующее межсезонье уже близко.
Я просто хотел добавить своё имя в эту тему, чтобы следить за обсуждениями. Мы — новый форум по гимнастике. Вчера во время отборочных соревнований США по олимпийским играм мы столкнулись с описанным выше, а также с «зависанием». Вот ссылка на тему…
https://gymnaverse.com/t/us-wag-olympic-trials-night-2-live-discussion/1092
Вчера у нас было 4 единорога.
Я увеличил конфигурацию сервера до 4 виртуальных ядер Intel и 8 ГБ оперативной памяти в Digital Ocean и установил следующие параметры…
unicorn_workers: 8
db_shared_buffers: “2GB”
Мы ожидаем значительно более высокий трафик во время Олимпийских игр. Что ещё можно сделать для оптимизации сервера под «чат-подобный» трафик во время соревнований?
Если у вас в одной теме одновременно находятся сотни пользователей, и вы используете Discourse как чат, и это мероприятие ограничено по времени, я бы рекомендовал временно увеличить мощность сервера.
Более крупный тариф Premium AMD от Digital Ocean на 16 дней проведения Олимпийских игр обошелся бы в 54,85 доллара США, и этого должно быть более чем достаточно для сообщества вашего размера.
У меня в файле app.yml нет этих строк. Мне просто их добавить?
Да. Добавьте их в секцию env.
Если этот вопрос всё ещё в поле зрения сотрудников, наш запуск состоится сегодня в 18:30 (UTC+3) и снова завтра в то же время.
После двух сезонов, испорченных COVID, ожидания очень высоки, поэтому я ожидаю резких всплесков трафика на tappara.co
@ljpp
Какова ваша текущая ситуация? Помог ли вам Redis 6?
Мы теперь на CDCK SaaS, поэтому предупредили персонал. Мы своего рода испытательный полигон в этом вопросе.