2016-08-31 66 views
0

我有一個非常簡單的rails應用程序,它一次接收130MB的圖像請求。這些請求是通過一個控制器處理的,該控制器只是響應一個json對象,表示它收到了該消息。這絕對是我所做的一切。這是軌道內存泄漏嗎?

我有這個應用程序部署在一個heroku愛好動態測試。每當我提出請求時,內存消耗會大幅增加,往往超出我的測功機的極限。

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

您是否曾嘗試一次發送一個圖像?如果130 MB是發送它們時的圖像大小,由於表示它們的Ruby對象,它在Ruby應用程序中的大小可能會更大。 – kcdragon

+0

謝謝你的回答,我可以嘗試做到這一點,但它仍然不能解釋爲什麼內存不被釋放。這絕對是一種更好的方式來發送圖像,但你的建議! –

回答

0

我想通了!事實證明,我使用的Puma網絡服務器導致了問題。我無法確定原因,但只要我轉乘乘客,所有的問題都消失了。