2009-05-13 5 views
6

내 레일 사이트가 Mongrel을 실행합니다. 사용중인 메모리 양에 문제가 있습니다. 내 루비 빈 프로세스는 약 66MB의 상주 메모리를 사용하고 있습니다. 레일에 사용되는 메모리 양을 어떻게 줄일 수 있습니까?잡동사니 레일 메모리 풋 프린트를 줄이고 성능을 향상 시키시겠습니까?

이 속도로 메모리를 먹는다면 한 대의 컴퓨터에서 많은 레일 서버를 실행하는 것이 경제적이지 않습니다. 내 php5 fcgi 프로세스는 15-25 MB 사이에 있습니다.

저는 RoR에 익숙하지 않습니다. JRuby 도움을 사용하고 싶습니까? 메모리 사용 공간을 줄이고 성능을 향상시키는 데 도움이되는 모든 의견은 환영 할만한 가치가 있습니다.

답변

7

요즘은 레일스 앱을위한 사실상 표준 설정 인 Phusion PassengerRuby Enterprise Edition을 볼 수 있습니다. 그 중 하나는 메모리 사용을 줄이는 것입니다. 그것은 또한 잡종을 가지고있는 것보다 간단합니다.

+0

+1 초 승객 추천. –

+0

+1 MBARI 패치가 포함되어 있기 때문에 REE 권장 사항보다 훨씬 적은 메모리를 소비합니다. 그 또는 1.9도 덜 사용합니다. 또한 가능한 경우 32 비트 OS를 실행하고 있는지 확인하십시오. – rogerdpack

3

당신이 아파치에 묶여 있지 않다면 Phusion Passenger로 nginx를 시도 할 수도 있습니다. 메모리 사용에 대해 걱정이된다면, nginx에서 아파치보다 작은 풋 프린트를 볼 수 있으며 가장 최신 버전의 Passenger가 nginx를 다운로드하여 컴파일하고 설치하게됩니다.

1

나는 승객이 사실상의 표준이다라고 말하기 위해 가지 않을 것이다. 그러나 그것은 많은 견인을 얻고있다. 방금 Nginx + Passenger로 전환했으며 Ruby 앱 (즉, Mongrels vs. Passenger) 메모리 사용 공간이 약 450MB에서 295MB로 떨어졌습니다. 유휴 (유휴 상태 인 경우)하는 경우 여객이 procs를 죽이기 때문에 적게 떨어질 수 있습니다 (물론 구성 가능합니다).하지만 트래픽이 발생하고 구성한 모든 인스턴스를 사용하고 있다면 적절하게 메모리를 사용합니다 .

아직 구성에서 Ruby Enterprise Edition을 사용하고 있지 않지만 (주로 Engine Yard에서 아직 사용할 수 없기 때문에), 우리는 여전히 더 작은 메모리 사용량을보고 있습니다. 메모리가 처음으로 전환 한 가장 큰 이유 였지만, 위아래로 크기를 조정하는 등 더 빠르고 쉬운 구성과 같은 다른 이점이 있습니다.

3

또한 mongrel 프로세스를 Thin으로 대체하는 것이 더 효율적이며 최근에는 가비지 수집 (이벤트 처리기를 통해)에 패치되어 더 나은 것으로 바뀌 었습니다.

우리는 nginx 프론트 엔드 뒤에 얇은 클러스터를 사용하여 훌륭한 결과를 얻었습니다.

관련 문제