# Atualização em tempo real de tópicos trava sob alta atividade

**URL:** https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789
**Category:** Support
**Created:** [Outubro 9, 2020, 4:28pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789 "2020-10-09T16:28:26Z")
**Posts on this page:** 20
**Page:** 4

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [Janeiro 12, 2021, 7:42pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/65 "2021-01-12T19:42:21Z")

</div>

Ontem, implementamos uma grande melhoria de desempenho para sites com postagens ativas e muitos usuários; isso deve ajudar bastante no seu site.

> <https://github.com/discourse/discourse/commit/b1f32f2f5717c4f55b902485794e62b8cecd8522>
>
> \* DEV: TopicTrackingState calls should happen in the background
> 
> It was observ…ed that calling TopicTrackingState on popular topics could result in a large number of calls to redis, resulting in slow response times when posting replies.
> 
> These calls should be moved to a background job.
> 
> \* DEV: PostUpdateTopicTrackingState should execute on default queue

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Janeiro 12, 2021, 7:43pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/66 "2021-01-12T19:43:39Z")

</div>

Muito bem, vamos analisar e possivelmente testar isso.

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Janeiro 15, 2021, 10:47am UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/67 "2021-01-15T10:47:56Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![riking](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/riking/32/170938_2.png) [@riking](https://meta.discourse.org/u/riking)
#### Post date: [Fevereiro 20, 2021, 1:46am UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/71 "2021-02-20T01:46:47Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![Paracelsus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paracelsus/32/164912_2.png) [@Paracelsus](https://meta.discourse.org/u/Paracelsus)
#### Post date: [Fevereiro 20, 2021, 10:16am UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/72 "2021-02-20T10:16:56Z")

</div>

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 😆.

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Fevereiro 22, 2021, 12:08pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/73 "2021-02-22T12:08:57Z")

</div>

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_.

> [@Real-time updating of topics freezes under high activity](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/64?u=ljpp):
>
> The games have been scarce (thanks to COVID), so we have had very few opportunities to measure and tinker with this. What we found out that even with our improved hardware resources (6+4 vCores and 16+8GB RAM), even a modestly active crowd is able to produce 429 client freezes. We saw this with the U20 WC games, that attracted about ~50% of our regular game audience for the chats. With measuring, trial and error we have settled with the following tweaks: DISCOURSE\_REJECT\_MESSAGE\_BUS\_QUEUE\_S…

---

<div class="post-metadata">

### Author: ![Paracelsus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paracelsus/32/164912_2.png) [@Paracelsus](https://meta.discourse.org/u/Paracelsus)
#### Post date: [Fevereiro 22, 2021, 2:17pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/74 "2021-02-22T14:17:19Z")

</div>

À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).

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Fevereiro 26, 2021, 6:03pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/75 "2021-02-26T18:03:44Z")

</div>

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?

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Março 10, 2021, 7:40pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/76 "2021-03-10T19:40:25Z")

</div>

@sam

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.

---

<div class="post-metadata">

### Author: ![Paracelsus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paracelsus/32/164912_2.png) [@Paracelsus](https://meta.discourse.org/u/Paracelsus)
#### Post date: [Março 10, 2021, 9:36pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/77 "2021-03-10T21:36:38Z")

</div>

> [@ljpp](#):
>
> No entanto, há um cenário que consigo reproduzir com confiança bastante alta (novamente, 90%). A plataforma apresenta problemas ocasionais ao retomar a sessão quando o tópico do jogo está em uma aba 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 postagem aparece. É necessário atualizar o navegador para recuperar totalmente o funcionamento.

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:

1. Pulo para a primeira postagem não lida
2. rolo a tela e leio as 100 postagens não lidas
3. depois vou para outro tópico ou para a página inicial…
4. 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.

---

<div class="post-metadata">

### Author: ![codinghorror](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/codinghorror/32/110067_2.png) [@codinghorror](https://meta.discourse.org/u/codinghorror)
#### Post date: [Março 10, 2021, 9:58pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/78 "2021-03-10T21:58:07Z")

</div>

> [@ljpp](#):
>
> Mas o público já parou de reclamar na maioria dos casos (90%) e está focando nos jogos.

Eu consideraria isso um sucesso.

> [@Paracelsus](#):
>
> Outra coisa é que, ao pular para a primeira mensagem não lida, isso pode se repetir algumas vezes (indo para a mesma “mensagem não lida” várias vezes, embora a posição da primeira mensagem não lida devesse ter mudado a cada vez).

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

---

<div class="post-metadata">

### Author: ![Paracelsus](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/paracelsus/32/164912_2.png) [@Paracelsus](https://meta.discourse.org/u/Paracelsus)
#### Post date: [Março 11, 2021, 7:19am UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/79 "2021-03-11T07:19:39Z")

</div>

É, 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.

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Abril 20, 2021, 6:56pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/80 "2021-04-20T18:56:41Z")

</div>

Nossa instância tem apresentado alguns erros 429 desde o início dos jogos de playoff. [@staff](https://meta.discourse.org/groups/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.

---

<div class="post-metadata">

### Author: ![falcon9](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falcon9/32/311948_2.png) [@falcon9](https://meta.discourse.org/u/falcon9)
#### Post date: [Junho 28, 2021, 6:23pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/82 "2021-06-28T18:23:13Z")

</div>

> [@ljpp](#):
>
> - Uma notificação de que ele foi desconectado
> - Ele é levado para a página índice do site
> - A página índice exibe a notificação de banner de alta carga

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](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?

---

<div class="post-metadata">

### Author: ![Falco](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falco/32/179432_2.png) [@Falco](https://meta.discourse.org/u/Falco)
#### Post date: [Junho 28, 2021, 6:52pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/83 "2021-06-28T18:52:00Z")

</div>

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.

---

<div class="post-metadata">

### Author: ![falcon9](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/falcon9/32/311948_2.png) [@falcon9](https://meta.discourse.org/u/falcon9)
#### Post date: [Julho 3, 2021, 7:51pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/84 "2021-07-03T19:51:24Z")

</div>

Eu não tenho essas linhas no meu app.yml. Devo apenas adicioná-las?

---

<div class="post-metadata">

### Author: ![pfaffman](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/pfaffman/32/120154_2.png) [@pfaffman](https://meta.discourse.org/u/pfaffman)
#### Post date: [Julho 3, 2021, 9:05pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/85 "2021-07-03T21:05:44Z")

</div>

Sim. Adicione-os na seção `env`.

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Setembro 10, 2021, 12:38pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/86 "2021-09-10T12:38:45Z")

</div>

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](http://tappara.co)

---

<div class="post-metadata">

### Author: ![valsha](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/valsha/32/230631_2.png) [@valsha](https://meta.discourse.org/u/valsha)
#### Post date: [Setembro 10, 2021, 2:31pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/87 "2021-09-10T14:31:36Z")

</div>

@ljpp  
qual é a sua situação atual? O Redis 6 te ajudou?

---

<div class="post-metadata">

### Author: ![ljpp](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/ljpp/32/96506_2.png) [@ljpp](https://meta.discourse.org/u/ljpp)
#### Post date: [Setembro 10, 2021, 2:50pm UTC](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789/88 "2021-09-10T14:50:10Z")

</div>

Agora estamos na CDCK SaaS, por isso avisamos a equipe. Somos um tipo de campo de testes para essa questão.

[Página anterior](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789.md?page=3)

[Próxima página](https://meta.discourse.org/t/real-time-updating-of-topics-freezes-under-high-activity/166789.md?page=5)
