¿Cómo puedo depurar el proceso Ruby que sigue subiendo?

¿Cómo puedo depurar el proceso Ruby que sigue subiendo?

Hace unos días, mis 4 servidores de aplicaciones comenzaron a tener problemas. Llegó después de implementar algo de código, pero todo lo que hice fue actualizar un archivo de base de datos local que almacena algunas direcciones IP, por lo que no hice ningún cambio real en el código. Parece que en esa época mis procesos de rubí se estaban yendo de las manos. Estarán bien por un tiempo, luego, de repente, suben rápidamente al 100% de CPU en una CPU. Como estoy usando pasajero, eventualmente otro subproceso hará lo mismo y maximizará otra CPU, y así sucesivamente hasta que el servidor web ya no pueda manejar el tráfico y deje de responder.

He investigado mucho (en lo cual no soy muy bueno), pero al menos descubrí que cuando se ejecuta una secuencia en los procesos, su inicio parece bastante normal, y luego, cuando se vuelven locos como se describió anteriormente, es simplemente una avalancha ininterrumpida de clock_gettime(CLOCK_REALTIME, {1518938625, 9566131}) = 0llamadas. El proceso normal, como dije, no es escupir cosas constantemente, solo cuando llega una solicitud web, por ejemplo, pero luego algo lo activa y simplemente se vuelve loco hasta que finalizo el proceso, reinicio el pasajero o reinicio el servidor. Luego, en una o dos horas, vuelve a tener problemas.

He estado en esto durante un par de días cuidando niños, reiniciando cosas sin parar para que siga cojeando, pero estoy desesperado por algunas ideas. Noté un par de publicaciones realmente antiguas, como de 2013, que hablan de un problema del 100% de la CPU con este asunto de clock_gettime, y probé ambas sugerencias asociadas con las pocas publicaciones que he visto. Uno establece una variable TZ y se supone que el otro corrige algún tipo de error de segundo intercalar. No entiendo el razonamiento detrás de ninguna de las soluciones propuestas, pero lamentablemente no funcionaron.

Estoy ejecutando la siguiente pila: Ruby 2.2.0 Passenger independiente: Gem Versión: 4.0.58 (e intenté actualizar a 5.2.0 en un servidor sin cambios en el comportamiento) MySQL CentOS 6.9

información relacionada