La semana pasada actualizamos un pequeño proyecto que se ejecutaba en Rails 3.0.1 a Rails 3.2.2.Gran pérdida/hinchazón de memoria después de actualizar de Rails 3.0 a Rails 3.2 (Ruby 1.9.3 + Passenger)
Poco después de la actualización, reconocimos que de vez en cuando, 2-3 veces al día, estamos viendo un gran proceso de Phusion Passenger (1-5 GB).
Estamos ejecutando Phusion Passenger 3.0.11 y Ruby 1.9.3-p0. Ya probamos diferentes versiones de Ruby (1.9.2-p290 y 1.9.3-p125) sin éxito.
Después, tratamos de rastrear nuestro uso de memoria con Oink. Desafortunadamente, Oink no muestra el motivo de la saturación de memoria: los procesos grandes ya no escriben en los archivos de registro.
Cuando retrocedimos a Rails 3.0.1, el problema desapareció. ¿Alguien tiene problemas similares? Realmente verificamos nuestro código para posibles fugas de memoria, como demasiadas instancias de ActiveRecord, pero no encontramos ninguna.
¿Crees que vale la pena probar Unicorn en lugar de Passenger? ¿O es probable que tengamos el mismo problema?
Cualquier sugerencia sobre cómo rastrear la pérdida de memoria es bienvenida. Ya configuramos newrelic, pero no muestra información detallada sobre la pérdida de memoria.
Hemos reemplazado a Pasajero por una configuración de Unicornio y ahora el sistema funciona como se esperaba. No sé si fue un problema general de Pasajeros o probablemente un problema con Passenger/rvm (y tal vez cómo lo instalamos/actualizamos recientemente). –
¿te importaría compartir tu configuración de unicornio? Estoy teniendo exactamente el mismo problema, ¡necesito reiniciar el servidor cada 6 horas para evitar el desbordamiento de la memoria! –
Perdón por la respuesta tardía. Bueno ... compartir la configuración de unicornio sería probablemente demasiado como para publicarlo aquí. Una búsqueda rápida en Google debería ayudarte. Tal vez comiences aquí: https://github.com/blog/517-unicorn.Básicamente es solo nginx con unicornio como servidor ascendente. La configuración del unicornio es simplemente un simple unicornio.rb en config ... Nos tomó probablemente una hora para cambiar de Pasajero. Y otro para agregar cosas de implementación de unicornios a nuestra configuración de Capistrano. –