Vì một số lý do xử lý hình ảnh (carrierwave + minimagick) ngừng hoạt động khoảng một tuần sau khi bắt đầu dịch vụ. Không có sự gia tăng bất thường về lưu lượng truy cập hoặc quá trình tải lên. Khi lỗi ENOMEM xảy ra, mọi thứ dường như 'khóa' và mọi quá trình sau đều không thành công.Không thể cấp phát bộ nhớ
Làm cách nào tôi có thể 'giải cứu' hệ thống khi nó ở trong hành vi đó hoặc thậm chí ngăn điều này xảy ra?
Một số lỗi:
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'
Bộ nhớ và không gian trao đổi thông tin:
Mem: 8193476k total, 7907152k used, 286324k free, 5968k buffers
Swap: 12396808k total, 9494924k used, 2901884k free, 180308k cached
Version thông tin:
- Rails 3.0.6
- ruby 1.9.2p290
- Apache 2.2.14
- hành khách 3.0.9
Cảm ơn bạn!
Một loạt các rò rỉ bộ nhớ đã được sửa trong ruby 1.9.3. Tôi muốn đề nghị nâng cấp và xem liệu điều đó có giúp ích gì không. http://svn.ruby-lang.org/repos/ruby/tags/v1_9_3_0/ChangeLog – Thilo
Cảm ơn bạn Thilo! Vì bộ nhớ cập nhật đang được xử lý tốt hơn rất nhiều. – Florian