Ontem, implementamos uma grande melhoria de desempenho para sites com postagens ativas e muitos usuários; isso deve ajudar bastante no seu site.
Muito bem, vamos analisar e possivelmente testar isso.
Bem, cada jogo é um caso individual. Com a situação da COVID (arena vazia) e uma programação de jogos quase aleatória, o comportamento do público é impossível de prever ou comparar com dados históricos.
Com base neste único jogo, não posso afirmar que essa mudança trouxe uma melhoria significativa para nós.
O primeiro período foi calmo e tranquilo, mas os eventos durante o segundo causaram um pico de mensagens e um aumento no número de observadores (lurkers). Cerca de 60% das nossas pessoas relataram ter experimentado travamentos.
Na configuração com dois servidores, o web_only é o único que relata alto uso de CPU e média de carga elevada.
O modo carga extrema / somente leitura não foi acionado, o que é bom, pois representa a pior experiência para o usuário. No geral, o público aprendeu rapidamente a visitar a página inicial e retornar para retomar a discussão — o que gera ainda mais carga no servidor. Se apenas o usuário final pudesse ser informado de alguma forma de que está sendo limitado, ele provavelmente esperaria um minuto com mais disposição.
Relatório de progresso das conversas privadas: a experiência foi melhorada ao definir DISCOURSE_REJECT_MESSAGE_BUS_QUEUE_SECONDS para 4, e estamos planejando algumas alterações no núcleo para melhorar o comportamento de limitação de taxa do message bus.
Como experimentamos algumas semelhanças com a situação do @ljpp, embora em uma extensão significativamente menor (quase exclusivamente em alguns 5 minutos ao redor do momento em que as partidas terminam), gostaria de saber se há algum ajuste que se possa fazer no limite onde a mensagem de alta carga entra em ação e os usuários começam a ser “expulsos” do tópico… porque isso sempre ocorre em um único tópico, o tópico da partida.
Isso e a mensagem de erro 502 (mensagem puramente do nginx) que experimentamos com ainda mais raridade no mesmo contexto. Suspeito que provavelmente haja algumas configurações no nginx que possam se beneficiar de algum ajuste, e sei que não é sua função, mas estou todo ouvidos para boas sugestões
.
Por favor, esclareça: você está enfrentando travamentos (o tópico não é atualizado com novos posts) ou está recebendo mensagens de erro de carga extrema?
Há ajustes neste tópico que oferecem algumas melhorias para os travamentos, mas eles também aumentam a carga do sistema, tornando mais provável que você enfrente cenários de carga extrema.
Às vezes, experimentamos o congelamento de tópicos nessas situações que relatei, mas quando isso acontece, o sistema também exibe avisos de carga extrema. Portanto, não posso dizer o que é o quê.
Não nos importamos com a carga extrema, desde que não expulse as pessoas dos tópicos ou interrompa a atualização de novas postagens. Na verdade, nesse caso, preferiríamos que o carregamento fosse lento (o ícone de carregamento poderia girar por 15 segundos para cada usuário ler/postar, e preferiríamos isso a congelamentos ou a expulsão de usuários).
Tenho que concordar. A UX de carga extrema é confusa para o usuário final.
- Quantos usuários concorrentes você tem?
- Que tipo de hardware?
- Link para as estatísticas do seu fórum?
Como agora estamos na plataforma SaaS CDCK, só posso observar isso do ponto de vista da UX.
Tivemos bastante movimento nos jogos nas últimas semanas. Os “congelamentos” praticamente desapareceram com a mudança de plataforma, mas há essa flutuação na forma como o tópico é atualizado, o que ainda pode confundir alguns usuários. No entanto, o público (90%) parou de reclamar e está focado nos jogos, o que é um bom sinal.
Há, contudo, um cenário que consigo reproduzir com confiança relativamente alta (novamente 90%). A plataforma apresenta problemas ocasionais ao retomar a sessão quando o tópico do jogo está em uma guia em segundo plano (Android) ou sob uma tela bloqueada. Quando retorno ao tópico ativo, geralmente devido a um evento interessante no jogo, a visualização do tópico nem sempre é atualizada. Consigo ver os avatares dos usuários piscando na parte inferior do tópico, mas nenhuma mensagem aparece. É necessário recarregar o navegador para recuperar totalmente a visualização.
O padrão de reprodução não é o mais simples, pois você precisa de:
- Um tópico ativo
- Ação intensa no jogo → mais movimento no tópico
- Manter o tópico em uma guia em segundo plano ou na tela bloqueada.
Nós também sofremos com isso.
Outra questão é que, ao pular para a primeira postagem não lida, esse comportamento pode se repetir algumas vezes (indo para a mesma “postagem não lida” várias vezes, embora a posição da primeira postagem não lida devesse ter mudado em cada ocasião).
Para exemplificar:
- Pulo para a primeira postagem não lida
- rolo a tela e leio as 100 postagens não lidas
- depois vou para outro tópico ou para a página inicial…
- após um minuto ou mais, há cerca de 30 novas postagens não lidas, mas quando clico no ícone, sou jogado novamente para a posição do passo 1 (ou seja, 130 postagens para trás e não apenas as 30 novas não lidas).
Mas, mais uma vez, isso só acontece em tópicos muito, muito ativos, durante alguns minutos no pico máximo de atualizações e postagens de todos os usuários no mesmo tópico ao mesmo tempo. É meio irritante, mas até agora não é algo que impeça o uso.
Eu consideraria isso um sucesso.
Você poderia fornecer um exemplo reproduzível aqui no meta? Provavelmente não, já que isso requer um grande número de usuários ativos ociosos no mesmo tópico ao mesmo tempo?
Minha ideia atual é que deveríamos criar um recurso de chat ao vivo e instanciá-lo apenas quando necessário, quando você tiver…
-
muitos usuários
-
no mesmo tópico
-
ao mesmo tempo
-
então, e apenas então, instanciar uma sobreposição de caixa de chat ao vivo e incentivar fortemente os usuários a usá-la em vez de respostas, talvez até desabilitar a capacidade de responder ao tópico com
Ei, parece que o que você realmente queria era uma sala de bate-papo… aqui está, divirta-se! 
É, eu sei o que você quer dizer, mas é tão limitado a essas ocasiões que acho que não vale o esforço. Normalmente temos partidas assim uma ou duas vezes por semana, e a maioria ocorre no período de 5 minutos logo após o término da partida. Mas eu já pensei nisso várias vezes (seria legal ter uma função de sala de bate-papo temporária ou uma opção de alternância para esses 90 minutos de duração de uma partida de futebol). ![]()
Ainda assim, vou tentar reproduzir isso um desses dias, gravando a tela por um tempo.
Nossa instância tem apresentado alguns erros 429 desde o início dos jogos de playoff. @staff deve conseguir ver alguns nos últimos 3,5 horas de nossos logs, e esperamos mais quando o gol decisivo for marcado (o jogo está indo para a segunda prorrogação enquanto escrevo isso).
De qualquer forma, se vocês ainda estão registrando e rastreando isso, restam poucas oportunidades, pois as finais e o período de entressafra subsequente estão se aproximando.
Só queria adicionar meu nome aqui no tópico para poder acompanhar. Somos um novo fórum de ginástica. Experimentamos o acima mencionado, além de “congelamentos”, ontem à noite durante as Eliminatórias Olímpicas dos EUA. Aqui está o tópico…
https://gymnaverse.com/t/us-wag-olympic-trials-night-2-live-discussion/1092
Tivemos 4 unicórnios ontem à noite.
Redimensionei o servidor para 4 vCPUs Intel e 8 GB de memória na Digital Ocean e configurei…
unicorn_workers: 8
db_shared_buffers: “2GB”
Estamos esperando um tráfego muito maior durante as Olimpíadas. O que mais podemos fazer para otimizar o servidor para tráfego “tipo chat” durante a competição?
Se você tiver centenas de usuários em um único tópico usando o Discourse como chat e se for um evento de tempo limitado, sugiro aumentar temporariamente um pouco o servidor.
O droplet Premium AMD maior na Digital Ocean, pelos 16 dias das Olimpíadas, custou US$ 54,85 e deve ser mais do que suficiente para uma comunidade do seu tamanho.
Eu não tenho essas linhas no meu app.yml. Devo apenas adicioná-las?
Sim. Adicione-os na seção env.
Se isso ainda estiver sob a atenção da equipe, nosso lançamento ocorre hoje às 18:30 (UTC+3) e novamente amanhã no mesmo horário.
Há muita expectativa após duas temporadas arruinadas pela COVID, então estou prevendo picos intensos de tráfego em tappara.co
@ljpp
qual é a sua situação atual? O Redis 6 te ajudou?
Agora estamos na CDCK SaaS, por isso avisamos a equipe. Somos um tipo de campo de testes para essa questão.