2016-08-31 5 views
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 
+0

一度に1つの画像を送信しようとしましたか?送信する画像のサイズが130 MBであれば、それを表すRubyオブジェクトのため、Rubyアプリケーションではさらに大きなサイズになっている可能性があります。 – kcdragon

+0

お返事ありがとうございます、私はそれを試みることができますが、それはまだメモリが解放されていない理由を説明していません。それは間違いなくあなたが提案した方法をイメージを送信するより良いアプローチのように思えます! –

答えて

0

私はそれを考え出しました!私が使用していたPuma Webサーバーが問題を引き起こしていたことがわかります。理由を判断することはできませんでしたが、乗客に切り替えるとすぐに、私の問題はすべて解消されました。

関連する問題