Sidekiq excedendo o uso de memória RAM

139 views
Skip to first unread message

Saulo Máximo

unread,
Jun 6, 2019, 3:24:35 PM6/6/19
to rail...@googlegroups.com
Prezados,

tenho um servidor de aplicação exclusivo e dedicado para processar Jobs através do sidekiq.
Servidor robusto com 8 cores, 15GB de RAM

Na configuração do sidekiq está concurrency: 10

O Problema: depois de alguns dias funcionando corretamente o consumo de memória começa a subir, (um pouco a cada dia), até que preenche toda a RAM e entra na área de swap. Esse estado é constante, mesmo que não esteja com nenhuma demanda de job (executando) no momento.
A Solução atual: após restartar o sidekiq, o uso de memória cai para 700MB, e demora mais uns 15 dias sem ter nenhum problema.

Alguém pode dar uma luz?

Atenciosamente,

Saulo Máximo

Felipe Pelizaro Gentil

unread,
Jun 6, 2019, 3:28:39 PM6/6/19
to rails-br
Tem alguma outra gem além do Sidekiq nesses processos?

Eu tive um problema parecido uma vez, e o problema não estava no Sidekiq em si, mas sim em uma outra gem de stats que ficava monitorando a quantidade de jobs, etc.

Att.

--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+u...@googlegroups.com
Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: https://goo.gl/BHB0wS
---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+u...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/rails-br/CAG88AqB9M6QaMnSKEe0jxwwrcXKR%3DoO5MA94xw%2BJBZQgr4SiHQ%40mail.gmail.com.
Para mais opções, acesse https://groups.google.com/d/optout.


--

Esteban Fuhrmann

unread,
Jun 6, 2019, 4:58:46 PM6/6/19
to rail...@googlegroups.com
What is your redis configuration ? Is internal o External ? 
--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para
rails-br+unsubscribe@googlegroups.com

Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: https://goo.gl/BHB0wS
---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+unsubscribe@googlegroups.com.


--
//Esteban Damian Fuhrmann 

Saulo Máximo

unread,
Jun 7, 2019, 8:34:09 AM6/7/19
to rail...@googlegroups.com
Olá Felipe, obrigado pela resposta.
Não há nenhuma outra gem monitorando os processos, apenas o próprio sidekiq.
Um detalhe interessante, é que mesmo tem ter nenhum JOB em execução (filas zeradas), o recurso fica totalmente alocado. Quando verifico o consumo de memória do SO através de um 'htop' , os processos abertos pelo sidekiq estão consumindo gigabytes de memória (sem está processando nada).

Atenciosamente,
Saulo Máximo

Saulo Máximo

unread,
Jun 7, 2019, 8:39:50 AM6/7/19
to rail...@googlegroups.com
Hello Esteban,
Thanks for the answer.
the redis is in another specific and exclusive server.



Em qui, 6 de jun de 2019 às 17:58, Esteban Fuhrmann <esteban.i...@gmail.com> escreveu:
What is your redis configuration ? Is internal o External ? 

El jueves, 6 de junio de 2019, Saulo Máximo <saulo...@gmail.com> escribió:
Prezados,

tenho um servidor de aplicação exclusivo e dedicado para processar Jobs através do sidekiq.
Servidor robusto com 8 cores, 15GB de RAM

Na configuração do sidekiq está concurrency: 10

O Problema: depois de alguns dias funcionando corretamente o consumo de memória começa a subir, (um pouco a cada dia), até que preenche toda a RAM e entra na área de swap. Esse estado é constante, mesmo que não esteja com nenhuma demanda de job (executando) no momento.
A Solução atual: após restartar o sidekiq, o uso de memória cai para 700MB, e demora mais uns 15 dias sem ter nenhum problema.

Alguém pode dar uma luz?

Atenciosamente,

Saulo Máximo

--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para

Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: https://goo.gl/BHB0wS
---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+u...@googlegroups.com.


--
//Esteban Damian Fuhrmann 

--
--
Você recebeu essa mensagem porquê está inscrito no Google
Groups "rails-br".
Para enviar uma mensagem para o grupo, mande um email para rail...@googlegroups.com
Para se descadastrar, mande um e-mail para

Visite o grupo em http://groups.google.com/group/rails-br?hl=pt-BR
Leia nossa política de uso: https://goo.gl/BHB0wS
---
Você recebeu essa mensagem porque está inscrito no grupo "rails-br" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para rails-br+u...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/rails-br/CAD5ROBXWypX0HfpcMg37ewd%3DXPLVSiUyHq6hH6UZqe8sgvnx5g%40mail.gmail.com.

Alex Takitani

unread,
Jun 7, 2019, 9:12:57 AM6/7/19
to rail...@googlegroups.com
Raramente é um problema no sidekiq, geralmente é algo no código, seja codigo feito por vc ou alguma gem.

Vc deu uma olhada neste post?


Achar Leak é difícil, mas vc tem ferramentas pra isso:



Enquanto vc nao acha, se vc já não o fez, recomento usar Jemalloc, ajuda bastante a reduzir o uso de memória:




Alex Takitani

unread,
Jun 7, 2019, 9:26:06 AM6/7/19
to rail...@googlegroups.com
Tem esse outro post q eu tinha guardado aqui 


Q dá pra ter uma ideia do trabalho que é, eu sugiro, q antes de tentar tudo isso, vc atualize as gems que seu app usa, as vezes só isso é o suficiente.

Saulo Máximo

unread,
Jun 7, 2019, 9:36:53 AM6/7/19
to rail...@googlegroups.com
Olá Alex,
muito obrigado pela resposta.

Vou ler com atenção todos os links que me enviou. O problema persiste, porém ele só ocorre a cada 15 dias em média.
Não sei se consegui explicar bem, mas o estouro de memória vai ocorrendo um pouco a cada dia. É como se a memória RAM fosse sendo consumida e não fosse desalocada após o processamento dos jobs.
Após uns 15 dias o cenário é um servidor com a memória RAM totalmente consumida pelos processos do sidekiq, SWAP alto, e zero jobs em processamento. Daí eu faço um restart no sidekiq e tudo volta ao normal.
Expliquei novamente para deixar claro que o alto consumo não ocorre exclusivamente durante a execução dos jobs. O consumo da memória vai crescendo gradativamente ao decorrer dos dias e é independente de ter ou não jobs em processamento.

Atenciosamente,

Saulo Máximo

Em sex, 7 de jun de 2019 às 10:12, Alex Takitani <atp...@gmail.com> escreveu:
Reply all
Reply to author
Forward
0 new messages