0
私は一度に130MB相当の画像を投稿要求を受け取る非常に単純なレールアプリケーションを持っています。これらの要求は、コントローラを介して処理されます。コントローラーは、単にメッセージを受信したことを示すjsonオブジェクトで応答します。それは私がやっているすべてのことです。これはレールのメモリリークですか?
私はこのアプリを英雄趣味のdynoに配備しています。私がリクエストするたびに、メモリ消費量がかなり上がり、しばしば私のdynoの限界を超えます。
Image of the heroku metrics log
要求を受信し、「処理」された後、メモリが正常に戻って行くの私は期待(特に私も内容を使用していないことを考えると受信)。
何が起こっているのか理解できる人はいますか?
それが助け場合は、ここで要求を受信したコントローラのコードスニペットです:
class ImageUploadController < ApplicationController
def create
params["images"].each_with_index do |base64image, index|
# ImageUploadJob.perform_later(base64image, params["imageType"], params["profileID"], index)
end
params = nil
render :json => {'result': 'Image sent for upload'}, :status => :ok
end
一度に1つの画像を送信しようとしましたか?送信する画像のサイズが130 MBであれば、それを表すRubyオブジェクトのため、Rubyアプリケーションではさらに大きなサイズになっている可能性があります。 – kcdragon
お返事ありがとうございます、私はそれを試みることができますが、それはまだメモリが解放されていない理由を説明していません。それは間違いなくあなたが提案した方法をイメージを送信するより良いアプローチのように思えます! –