2010-04-29 2 views
0

AppEngine JRuby on Rails (SDK 버전 1.3.3.1)를 사용합니다. 자주 발생하는 문제는 서버가 실제로 느리게 진행되어서 서버가 종료되어 OutOfMemoryError가 터미널 (OSX)에 전달 될 때까지 발생합니다.AppEngine JRuby - OutOfMemoryError : Java 힙 공간 - 해결할 수 있습니까?

요청 자체는 매우 가벼워서 DataMapper를 사용하여 엔티티를 찾거나 저장하는 것이 아닙니다.

appspot에서이 문제는 발생하지 않습니다.

JRuby의 힙 공간을 확장하는 방법이 있습니까?

예외 로그 :

Exception in thread "Timer-2" java.lang.OutOfMemoryError: Java heap space 
Apr 29, 2010 8:08:22 AM com.google.apphosting.utils.jetty.JettyLogger warn 
WARNING: Error for /users/close_users 
java.lang.OutOfMemoryError: Java heap space 
    at org.jruby.RubyHash.internalPut(RubyHash.java:480) 
    at org.jruby.RubyHash.internalPut(RubyHash.java:461) 
    at org.jruby.RubyHash.fastASet(RubyHash.java:837) 
    at org.jruby.RubyArray.makeHash(RubyArray.java:2998) 
    at org.jruby.RubyArray.makeHash(RubyArray.java:2992) 
    at org.jruby.RubyArray.op_diff(RubyArray.java:3103) 
    at org.jruby.RubyArray$i_method_1_0$RUBYINVOKER$op_diff.call(org/jruby/RubyArray$i_method_1_0$RUBYINVOKER$op_diff.gen) 
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:146) 
    at org.jruby.ast.CallOneArgNode.interpret(CallOneArgNode.java:57) 
    at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123) 
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) 
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) 
    at org.jruby.runtime.InterpretedBlock.evalBlockBody(InterpretedBlock.java:373) 
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:346) 
    at org.jruby.runtime.InterpretedBlock.yield(InterpretedBlock.java:303) 
    at org.jruby.runtime.Block.yield(Block.java:194) 
    at org.jruby.RubyArray.collect(RubyArray.java:2354) 
    at org.jruby.RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$collect.call(org/jruby/RubyArray$i_method_0_0$RUBYFRAMEDINVOKER$collect.gen) 
    at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:115) 
    at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:122) 
    at org.jruby.ast.CallNoArgBlockNode.interpret(CallNoArgBlockNode.java:64) 
    at org.jruby.ast.CallNoArgNode.interpret(CallNoArgNode.java:61) 
    at org.jruby.ast.LocalAsgnNode.interpret(LocalAsgnNode.java:123) 
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) 
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) 
    at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:98) 
    at org.jruby.ast.BeginNode.interpret(BeginNode.java:83) 
    at org.jruby.ast.NewlineNode.interpret(NewlineNode.java:104) 
    at org.jruby.ast.BlockNode.interpret(BlockNode.java:71) 
    at org.jruby.ast.EnsureNode.interpret(EnsureNode.java:96) 
    at org.jruby.internal.runtime.methods.InterpretedMethod.call(InterpretedMethod.java:201) 
    at org.jruby.internal.runtime.methods.DefaultMethod.call(DefaultMethod.java:183) 

답변

-1

-XX:MaxHeapSize 설정하고 -Xmx VM 매개 변수

+0

감사합니다, 당신은 그 일을하는 방법에 대한 자세한 구체적으로하시기 바랍니다 수 있습니까? – elado

+0

확인은 dev_appserver.rb와 같습니다. --jvm_flag = -Xmx1024m이 해결책입니다. – elado

관련 문제