Tomcat(Warble)内で実行されているJRuby on Railsアプリケーションがあります。それは、Javaブリッジを使用してProgress(OpenEdge)アプリケーションサーバーに接続します...私がメモリを監視するとき、それは上昇し続けるだけです。Tomcat JRubyアプリケーションでメモリが解放されないのはなぜですか?
- のTomcat 7.0
- JRubyの1.6.7.2(ルビー-1.9.2-P312)
- JVM 1.7.0.25
- レール3.2.7
- JRubyのラック1.1.7
- ワーラー1.3.6
ここで問題を解決するにはどうすればよいですか?私はそれがクリーンアップされていないJRubyオブジェクト、またはJavaブリッジの何か、またはジョブを実行しないガベージコレクタかもしれないと思います...
私はプロセスを30分実行させてもメモリがダウンしない...
- どのオブジェクトが生きているかを知る方法はありますか?
- 誰もがすべてのメモリを使用していることについてより多くの情報を得ることができる、使いやすい無料のツールはありますか?
ちなみに、私はすでに多くのメモリを使用するようにTomcatサーバーを構成しているが、それはちょうど...
EDITをヒープ領域のエラーを遅らせています:私は実際に見ていると、Tomcatがちょうど使用していることです最大使用可能なすべてのメモリ(最大メモリプール)。それは決してそれを解放しない。おそらくそれはちょうど正常な動作です...私は今例えば最大256MBに設定しています。タスクマネージャでは、メモリは約256MBのままです。
EDIT:
ヒープ・ダンプを作成し、日食これは私が取得していたレポートであるEclipseのメモリアナライザでそれを分析させます。私は
問題の容疑者org.apache」によってロード「org.jruby.RubyClass」、の1つの
6.458インスタンス...ツールは、おそらく全体のJRubyの話を期待していないので、それは普通のことだと思います。 catalina.loader.WebappClassLoader @ 0x700ec6988 "は56.969.616(31,78%)バイトを占有します。
キーワード org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 org.jruby.RubyClass
問題の容疑者org.jruby.internal.runtime.methods」の2つの
10.597インスタンス。 DefaultMethod "は、" org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 "によってロードされ、22.182.112(12,37%)バイトを占めます。
キーワード org.jruby.internal.runtime.methods.DefaultMethod org.apache.catalina.loader。WebappClassLoader "0x700ec6988 @ org.apache.catalina.loader.WebappClassLoader" によってロード "org.jruby.RubyModule" の3つの
3.144の場合は、21.226.816(11,84を占め0x700ec6988
問題の容疑者@ %)バイト。
キーワード org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 org.jruby.RubyModule
問題の容疑者」によってロード "org.jruby.MetaClass" の4つの
8.888の場合、 org.apache.catalina.loader.WebappClassLoader @ 0x700ec6988 "は18.563.784(10,35%)バイトを占有します。
キーワード org.jruby.MetaClass org.apache.catalina.loader.WebappClassLoader 0x700ec6988
具体的な問題は何ですか?あなたは記憶がなくなったのですか? JRubyのどのバージョン?どのバージョンのRails?その他 "3.7"はありません。 –
具体的な問題は、ERROR Java Heap Spaceです。 ログに情報がありませんでした。 –
質問をすべての特定のバージョンで更新します。 –