2010-01-07 5 views
1

누군가 here과 비슷한 글을 올렸지 만 더 빨리 달리고 더 많은 메모리를 절약 할 수 있을지 궁금합니다. 나는 Matz가 1.9에서 많은 향상을 이뤘음을 알고 있지만, Phusion 녀석들이 한 결정에 대해서도지지합니다.작은 VM에서 Ruby 1.9.1 또는 Ruby 1.8.7 Enterprise Edition?

제 질문은 265MB의 RAM 만 가진 내 VM에서 실행하는 것이 가장 좋습니다.

답변

2

은 1.8.7 EE는 안전 할 것 지금 당장. Ruby 앱의 가장 큰 문제점은 메모리 공유 (쓰기시 복사 문제)와 수정이 EE의 주요 목표라는 뚜렷한 무능력입니다.

저는 기존의 Ruby 1.8.7에서 실행되는 모든 제품에서 Rails, Merb, Rack 및 Thin이 혼합 된 8 개의 다른 사이트를 관리합니다. 작은 Rails 애플리케이션의 경우 256Mb가 괜찮습니다.

아래에서 우리의 신청서가 6 가지 프로세스로 구성되어 있음을 알 수 있습니다. Rails (2)와 Merb (4). Rails 프로세스 (mongrel_rails)는 각각 실제 메모리 104MB를 사용합니다. 우리의 응용 프로그램은 0.5 초 정도의 응답으로 비교적 복잡하므로 2 Rails 프로세스에서 약 4/5 명의 동시 사용자를 처리 할 수있는 방법을 모색 중입니다. 놀랍도록 적은 양의 공유 메모리를보고 EE가 왜 그렇게 많은 이유인지 확인하십시오. 저는 EE와 훨씬 더 높은 공유 섹션을 기대합니다.

그들은 '당신의 경험은 다를 수 있습니다.'라고 말하지만, 평범한 구식 루비/레일즈를 시험 해보고 필요한 경우 EE로만 이동하는 것을 막을 수있는 방법은 없습니다.

top - 08:57:48 up 128 days, 11:57, 1 user, load average: 0.07, 0.09, 0.09 
Tasks: 76 total, 1 running, 75 sleeping, 0 stopped, 0 zombie 
Cpu(s): 2.4%us, 0.1%sy, 0.0%ni, 96.2%id, 0.0%wa, 0.0%hi, 0.0%si, 1.3%st 
Mem: 1048796k total, 745840k used, 302956k free,  5192k buffers 
Swap: 2097144k total, 634636k used, 1462508k free, 124816k cached 

    PID USER  PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND                     
25875 root  20 0 271m 104m 4616 S 0 10.2 141:07.07 mongrel_rails                    
25872 root  20 0 263m 102m 4648 S 0 10.0 142:11.86 mongrel_rails                    
21089 root  20 0 192m 84m 2436 S 0 8.3 2:52.03 merb                      
21088 root  20 0 173m 80m 2436 S 0 7.9 2:51.73 merb                      
21090 root  20 0 179m 74m 2436 S 0 7.3 2:42.83 merb                      
21086 root  20 0 113m 34m 1660 S 11 3.4 3752:37 merb                      
4874 clavis 20 0 122m 31m 3804 S 0 3.1 127:52.87 profile_report                   
3662 mysql  20 0 368m 22m 3280 S 0 2.2 464:01.81 mysqld    
+0

그래서 두 마리의 잡종은 일반 루비 1.8.7을 사용하고 있고 merb는 EE를 실행 중입니까? 그래서 당신의 경우에는 RSS를 올바르게 읽는다면 EE로 RSS가 약 20 % 낮아집니다. –

+0

아쉽게도 Merb도 표준 1.8.7을 사용하고 있습니다. 응용 프로그램에는 여러 가지 측면이 있지만, Merb에서는 Rails보다 성능이 우수하므로 시간이 가장 중요합니다. 우리가 다시 해보는 중이라면 Rack via Thin을 사용할 것입니다. –

+0

EE를 사용하고 있지 않다는 답변이 업데이트되었습니다. –

2

레일 3은 루비 1.9에 최적화되어 있고 루비 1.9에는 REE와 비슷한 최적화가 많이 있으므로 루비 1.9는 메모리 사용량이 매우 비슷하고 REE보다 빠릅니다.

예후 레일에 대해 이야기 3 :

http://railsonedge.blogspot.com/2009/03/yehuda-katz-talks-about-rails-30.html
http://www.oreillynet.com/pub/e/1338

루비 1.9에 대한 REE에 대한

작은 Google 그룹 토론

http://groups.google.com/group/emm-ruby/browse_thread/thread/b5ab0f02c3faac7e#

+0

Matz이 REE 항목 중 일부를 업스트림, 특히 가비지 수집기에 병합하기를 바랍니다. –

관련 문제