Por algún motivo, el procesamiento de imágenes (carrierwave + minimagick) deja de funcionar aproximadamente una semana después de que se inicia el servicio. No hay un aumento inusual en el tráfico o los procesos de carga. Una vez que se produce el error ENOMEM, todo parece "bloquearse" y los siguientes procesos también fallan.No se puede asignar memoria
¿Cómo puedo 'rescatar' el sistema una vez que está en ese comportamiento o incluso evitar que esto suceda?
Algunos de los errores:
Errno::ENOMEM (Cannot allocate memory - export LANG=C && identify -ping /tmp/mini_magick20111219-18047-1dhmawm.jpg 2>&1):
app/uploaders/photo_uploader.rb:70:in `custom_thumbnail'
app/controllers/upload_controller.rb:186:in `process_upload'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
Errno::ENOMEM (Cannot allocate memory - export LANG=C && mogrify -format jpg /tmp/mini_magick20111219-18047-1c43qpf.jpg 2>&1):
app/controllers/upload_controller.rb:186:in `process_upload'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
...
...
Errno::ENOMEM (Cannot allocate memory - export LANG=C && mogrify -resize "120x180" -gravity "Center" -extent "120x120" /tmp/mini_magick20111219-18047-155ofje.jpg 2>&1):
app/controllers/upload_controller.rb:186:in `process_upload'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
app/middleware/flash_session_cookie_middleware.rb:17:in `call'
de memoria y espacio de intercambio información: Información
Mem: 8193476k total, 7907152k used, 286324k free, 5968k buffers
Swap: 12396808k total, 9494924k used, 2901884k free, 180308k cached
Versión:
- Rails 3.0.6
- rubí 1.9.2p290
- Apache 2.2.14
- pasajeros 3.0.9
Gracias!
Un montón de pérdidas de memoria se han solucionado en ruby 1.9.3. Sugeriría actualizar y ver si eso ayuda. http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_0/ChangeLog – Thilo
¡Gracias Thilo! Dado que la memoria de actualización se maneja mucho mejor. – Florian