Como posso depurar o processo Ruby que continua subindo?

Como posso depurar o processo Ruby que continua subindo?

Há alguns dias, todos os meus quatro servidores de aplicativos começaram a ter problemas. Isso aconteceu depois que eu implantei algum código, mas tudo que fiz foi atualizar um arquivo de banco de dados local que armazena alguns endereços IP, então não fiz nenhuma alteração real no código. Parece que foi nessa época que meus processos Ruby estão ficando fora de controle. Eles ficarão bem por um tempo e, de repente, subirão rapidamente para 100% da CPU em uma CPU. Como estou usando o passageiro, eventualmente outro thread fará a mesma coisa e maximizará outra CPU, e assim por diante, até que o servidor web não consiga mais lidar com o tráfego e pare de responder.

Eu fiz muitas pesquisas (nas quais não sou muito bom), mas pelo menos descobri que, ao executar um strace nos processos, eles parecem bastante normais para iniciar e, quando enlouquecem, conforme descrito acima, é apenas uma enxurrada ininterrupta de clock_gettime(CLOCK_REALTIME, {1518938625, 9566131}) = 0chamadas. O processo normal, como eu disse, não é cuspir coisas constantemente, apenas quando uma solicitação da web chega, por exemplo, mas então algo o desencadeia e fica maluco até eu encerrar o processo, reiniciar o passageiro ou reiniciar o servidor. Então, dentro de uma ou duas horas, ele volta a ter problemas novamente.

Estou nisso há alguns dias como babá, reiniciando coisas sem parar para mantê-las mancando, mas estou desesperada por algumas ideias. Notei alguns posts muito antigos, de 2013, que falam sobre um problema de 100% de CPU com essa coisa de clock_gettime, e tentei as duas sugestões associadas aos poucos posts que vi. Um deles é definir uma variável TZ e o outro deve corrigir algum tipo de bug de segundo bissexto. Não entendo o raciocínio por trás de nenhuma das correções propostas, mas infelizmente elas não funcionaram.

Estou executando a seguinte pilha: Ruby 2.2.0 Passenger standalone: ​​Gem Versão: 4.0.58 (e tentei atualizar para 5.2.0 em um servidor sem alteração de comportamento) MySQL CentOS 6.9

informação relacionada