2016-08-31 67 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网络服务器导致了问题。我无法确定原因,但只要我转乘乘客,所有的问题都消失了。