Aumento no uso de CPU desde a atualização 3.4.0.beta4-dev (58f75ed205)

Notei um aumento substancial no uso da CPU desde a atualização neste fim de semana. O uso da CPU do RUBY parece ser o principal responsável. Isso foi referenciado por outro usuário do discourse neste tópico.

Como você pode ver nos gráficos abaixo, o uso e a carga da CPU antes da atualização eram muito menores do que depois da atualização. A atualização ocorreu na noite de 31/01.

Aqui estão duas imagens do TOP tiradas com 33 horas de diferença:

Em 33 horas, há um uso significativo de CPU do ruby. Com base nos dados do top, vi 2x o uso de CPU nas últimas 33 horas em comparação com 22 dias. Em 33 horas, vi 11 horas de tempo de CPU. (648 minutos de tempo de CPU em 5 PIDs)

Dados Adicionais:

  • O tráfego diminuiu nos últimos dois dias em cerca de 10%. (analytics e dashboard)
  • Instalação padrão de discourse em contêiner único (sem chat)
  • Filas do Sidekiq estão mínimas (1K a 2K por dia)
  • Nada parece incomum nos logs do discourse
  • Eu rodo em um servidor DO com 8GB de RAM e 2 vCPUs AMD.

Este não é um caso em que o servidor está criticamente inativo, mas servidores que rodam a 5% a 7% são muito mais agradáveis do que aqueles que rodam a 25%.

Que informações posso fornecer para ajudar a solucionar este problema?

obrigado

3 curtidas

Vamos deixar isso em suporte por um tempo até determinarmos se há um bug.

Você pode entrar no contêiner e executar um htop de dentro (você terá que instalá-lo), assim você poderá dizer qual processo específico está consumindo muita CPU.

Você pode obter um pouco mais de visibilidade usando uma técnica como esta: Debugging 100% CPU usage in production Ruby on Rails systems

O mais provável, no entanto, é que o sidekiq /sidekiq esteja de alguma forma sobrecarregado em sua instância. (Eu olharia particularmente para o agendador)

Visualizações do htop.

Aqui está um vídeo de 30 segundos:

Capturas de tela aleatórias:

Visualização em Árvore:

sidekiq:


Me avise se há algo específico que você precisa ver.

2 curtidas

Sim, algo está errado:

top -H -p PID_DO_UNICORN

Suspeito que você verá V8 DefaultWorker lá, acho que isso é uma regressão no mini_racer… vou reverter para ver se isso resolve.

1 curtida

OK, isso foi revertido agora,

Me avise se o commit restaurar o desempenho.

6 curtidas

Sim, resolveu o problema de CPU alta. Minha carga de 1 minuto e 5 minutos é cerca de 1/3 dos valores anteriores. Isso com htop e netdata agora rodando no sistema.

Vídeo do HTOP

Gráfico de Carga

Eu esperaria que o uso da CPU e a carga diminuíssem lentamente à medida que mais consultas ao banco de dados fossem armazenadas em cache no sistema.

Tabela de Carga:

tempo Pré-correção Pós-correção
1 min 0,4 a 0,6 0,06 a 0,1
5 min 0,39 a 0,5 0,15 a 0,18

A métrica de 15 minutos é impactada por uma reconstrução. Postarei mais algumas estatísticas mais tarde esta manhã.

Obrigado pela correção de última hora.

3 curtidas

Desculpe por isso, a atualização do mini_racer tem sido uma grande aventura. Esperamos que a superemos em breve.

3 curtidas

Obrigado pela rápida resposta para investigar.

Tenho certeza que você tinha outros planos para o dia em vez de um rollback.

Como um novo usuário do Discourse, 2 semanas desde a migração, o produto tem sido ótimo de trabalhar.

2 curtidas

História semelhante aqui também.

[Editar: parece ter sido corrigido agora após a atualização para o branch mais recente]

Aqui está uma revisão de desempenho 18 horas após a reconstrução. A tabela de carga diz tudo.

Tabela de Carga:

tempo Pré-correção Pós-correção
1 min 0,4 a 0,6 0,03 a 0,05
5 min 0,39 a 0,5 0,09
15 min 0,68 0,12

Legenda:

  • Seta vermelha - reconstruiu o aplicativo
  • Seta roxa - desativou o netdata

Observação, para fechar o ciclo, o bug que o causou foi este:

Atualizei a gem. Uma vantagem imediata é que parece que esta versão do v8 usa um pouco menos de memória, o que é bom.

6 curtidas

Instalei a versão mais recente ontem à noite com a correção. O uso da CPU voltou aos níveis históricos.

Obrigado por todo o ótimo trabalho.

1 curtida

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.