2016-08-31 2 views
0

나는 한 번에 130MB 상당의 이미지가있는 게시물 요청을받는 매우 간단한 레일 응용 프로그램을 가지고 있습니다. 이러한 요청은 컨트롤러를 통해 처리됩니다. 컨트롤러는 단순히 메시지를 수신했다는 json 객체로 응답합니다. 그것은 내가하는 모든 일이다.이것은 레일 메모리 누출인가요?

나는이 앱을 영웅 취미 다이노에 배치했다. 내가 요청할 때마다 메모리 소비는 상당히 많이 올라갑니다. 종종 내 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

한 번에 하나의 이미지를 보내 보셨습니까? 전송할 때 이미지의 크기가 130MB라면 이미지를 나타내는 Ruby 객체로 인해 Ruby 응용 프로그램의 크기가 훨씬 커질 수 있습니다. – kcdragon

+0

답장을 보내 주셔서 감사합니다.하지만 메모리를 공개하지 않는 이유는 아직 설명하지 못했습니다. 확실히 당신이 제안한 방법을 이미지를 보내는 것이 더 나은 접근법처럼 보입니다! –

답변

0

내가 그것을 알아 냈어! 내가 사용하고 있던 Puma 웹 서버가 문제를 일으켰다는 것을 알았습니다. 나는 그 이유를 알 수 없었지만, 내가 승객으로 바꿨을 때 나의 모든 문제는 사라졌다.

관련 문제