2010-11-30 19 views
5

私はBLAST2GOというJava Web Startアプリケーションを使用しています。メモリ割り当てに関する問題が発生しています。大きなデータセットをメモリにロードする必要があるので、私はこのアプリケーションに3〜6GBを割り当てようとしていました。しかし、最大ヒープサイズとして何を設定しても、常に455MBが使用されます(メッセージバーの 'Memory usage:xxMB of 455MB')。私はそれを非常に合理的なレベル(1024 MB)に設定しようとしましたが、依然として割り当ては455 MBだけです。Java Webstartアプリケーションのメモリ割り当て

アイデア?

私はUbuntu 10.04 32ビットを24GBメモリ、8個のプロックで使用しています。

更新:ここでは提供するJNLPを示します。私はinitial-heap-sizemax-heap-size属性の値を編集するときと同じ結果になります。

<jnlp spec="1.0+" codebase="http://bioinfo.cipf.es/blast2go/webstart" href="http://bioinfo.cipf.es/blast2go/webstart/makeJnlp.php?mem=3072"> 
<information> 
<title>Blast2GO 3072M</title> 
<vendor>CIPF - UPV - IVIA</vendor> 
<homepage href="http://www.blast2go.org"/> 
<description>Blast2GO 3072M</description> 
<description kind="short">Blast2GO 3072M</description> 
<icon href="splash.gif"/> 
<offline-allowed/> 
</information> 
<security> 
<all-permissions/> 
</security> 
<resources> 
<j2se version="1.5+" initial-heap-size="64m" max-heap-size="3072M"/> 
<jar href="ext/blast2go.jar"/> 
<jar href="ext/biojava-1.3.1.jar"/> 
<jar href="ext/jfreechart-1.0.10.jar"/> 
<jar href="ext/mysql-connector-java-3.0.11-stable-bin.jar"/> 
<jar href="ext/zvtm.jar"/> 
<jar href="ext/jakarta-regexp-1.4.jar"/> 
<jar href="ext/jcommon-1.0.13.jar"/> 
<jar href="ext/Simpat1.1.jar"/> 
<jar href="ext/iText-2.1.1.jar"/> 
<jar href="ext/jdom/activation.jar"/> 
<jar href="ext/jdom/ant.jar"/> 
<jar href="ext/jdom/jaxen-core.jar"/> 
<jar href="ext/jdom/jaxen-jdom.jar"/> 
<jar href="ext/jdom/jdom.jar"/> 
<jar href="ext/jdom/mail.jar"/> 
<jar href="ext/jdom/saxpath.jar"/> 
<jar href="ext/jdom/xalan.jar"/> 
<jar href="ext/jdom/xerces.jar"/> 
<jar href="ext/jdom/xml-apis.jar"/> 
<jar href="ext/interpro/commons-cli-1.0.jar"/> 
<jar href="ext/interpro/commons-cli.jar"/> 
<jar href="ext/interpro/freefluo.jar"/> 
<jar href="ext/interpro/servlet.jar"/> 
<jar href="ext/interpro/WSInterProScan.jar"/> 
<jar href="ext/axis_1_4/axis-ant.jar"/> 
<jar href="ext/axis_1_4/axis.jar"/> 
<jar href="ext/axis_1_4/commons-discovery-0.2.jar"/> 
<jar href="ext/axis_1_4/commons-logging-1.0.4.jar"/> 
<jar href="ext/axis_1_4/jaxrpc.jar"/> 
<jar href="ext/axis_1_4/keggapi.jar"/> 
<jar href="ext/axis_1_4/log4j-1.2.8.jar"/> 
<jar href="ext/axis_1_4/saaj.jar"/> 
<jar href="ext/axis_1_4/wsdl4j-1.5.1.jar"/> 
<jar href="ext/axis2/activation-1.1.jar"/> 
<jar href="ext/axis2/annogen-0.1.0.jar"/> 
<jar href="ext/axis2/axiom-api-1.2.2.jar"/> 
<jar href="ext/axis2/axiom-dom-1.2.2.jar"/> 
<jar href="ext/axis2/axiom-impl-1.2.2.jar"/> 
<jar href="ext/axis2/axis2-adb-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-adb-codegen-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-codegen-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-java2wsdl-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-jaxbri-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-jibx-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-kernel-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-saaj-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-soapmonitor-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-spring-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-tools-1.1.1.jar"/> 
<jar href="ext/axis2/axis2-xmlbeans-1.1.1.jar"/> 
<jar href="ext/axis2/backport-util-concurrent-2.2.jar"/> 
<jar href="ext/axis2/commons-codec-1.3.jar"/> 
<jar href="ext/axis2/commons-fileupload-1.1.1.jar"/> 
<jar href="ext/axis2/commons-httpclient-3.0.1.jar"/> 
<jar href="ext/axis2/commons-io-1.2.jar"/> 
<jar href="ext/axis2/commons-logging-1.1.jar"/> 
<jar href="ext/axis2/geronimo-spec-jms-1.1-rc4.jar"/> 
<jar href="ext/axis2/jakarta-httpcore-4.0-alpha2.jar"/> 
<jar href="ext/axis2/jaxb-api-2.0.2.jar"/> 
<jar href="ext/axis2/jaxb-impl-2.0.2.jar"/> 
<jar href="ext/axis2/jaxb-xjc-2.0.2.jar"/> 
<jar href="ext/axis2/jaxen-1.1-beta-10.jar"/> 
<jar href="ext/axis2/jibx-bind-1.1.3.jar"/> 
<jar href="ext/axis2/jibx-run-1.1.3.jar"/> 
<jar href="ext/axis2/mail-1.4.jar"/> 
<jar href="ext/axis2/neethi-2.0.jar"/> 
<jar href="ext/axis2/servletapi-2.3.jar"/> 
<jar href="ext/axis2/stax-api-1.0.1.jar"/> 
<jar href="ext/axis2/woden-1.0.0M6.jar"/> 
<jar href="ext/axis2/wsdl4j-1.6.2.jar"/> 
<jar href="ext/axis2/wstx-asl-3.2.0.jar"/> 
<jar href="ext/axis2/xalan-2.7.0.jar"/> 
<jar href="ext/axis2/xbean-2.2.0.jar"/> 
<jar href="ext/axis2/xercesImpl-2.8.1.jar"/> 
<jar href="ext/axis2/xml-apis-1.3.03.jar"/> 
<jar href="ext/axis2/XmlSchema-1.2.jar"/> 
<jar href="ext/batik/batik-anim.jar"/> 
<jar href="ext/batik/batik-awt-util.jar"/> 
<jar href="ext/batik/batik-bridge.jar"/> 
<jar href="ext/batik/batik-codec.jar"/> 
<jar href="ext/batik/batik-css.jar"/> 
<jar href="ext/batik/batik-dom.jar"/> 
<jar href="ext/batik/batik-extension.jar"/> 
<jar href="ext/batik/batik-ext.jar"/> 
<jar href="ext/batik/batik-gui-util.jar"/> 
<jar href="ext/batik/batik-gvt.jar"/> 
<jar href="ext/batik/batik-parser.jar"/> 
<jar href="ext/batik/batik-script.jar"/> 
<jar href="ext/batik/batik-svg-dom.jar"/> 
<jar href="ext/batik/batik-svggen.jar"/> 
<jar href="ext/batik/batik-swing.jar"/> 
<jar href="ext/batik/batik-transcoder.jar"/> 
<jar href="ext/batik/batik-util.jar"/> 
<jar href="ext/batik/batik-xml.jar"/> 
<jar href="ext/batik/js.jar"/> 
<jar href="ext/batik/pdf-transcoder.jar"/> 
<jar href="ext/batik/xalan-2.6.0.jar"/> 
<jar href="ext/batik/xerces_2_5_0.jar"/> 
<jar href="ext/batik/xml-apis-ext.jar"/> 
<jar href="ext/batik/xml-apis.jar"/> 
</resources> 
<application-desc main-class="es.blast2go.prog.MainProg"/> 
</jnlp> 

更新:私はルートjnlpタグにhref属性を変更しようと、私は端末上で非常に奇妙なメッセージが表示されました。 JavaがこのURLから毎回JNLPを再ダウンロードしていて、JNLPを編集しようとする試みを無視しているのだろうかと思います。私がこれを防ぐ方法はありますか?

> javaws blast2go3GB.jnlp 
Error occurred during initialization of VM 
CCoouulldd nnoott crreesaetrev et heen oJuagvha svpiarcteu aflo rm aocbhjiencet. 
heap 

最終更新:これはJavaのバージョンとの問題だったが判明。私はSun Javaをダウンロードして使用したときに予想される動作を得ました。

+0

? –

+0

私が提供するリンクを使用して、どれくらいのものを指定しますか? –

+0

同じことをしました:2048が入力された場合、 ''です。 –

答えて

3

32ビットLinuxを実行している場合、インスタンスあたり約4GBのメモリに制限されている32ビットJVMしか実行できません。私は、たとえカーネルの方が見えても、これが当てはまると思います。

実際には、1つのJVMで64ビットにする必要がある多くのメモリが本当に必要な場合。


編集:Java WebStartはOpenJDK用にオープンソースではないため、別の実装が使用されています。代わりにSun Javaをダウンロードして使用してください。 JDKをダウンロードして解凍し、bin/javaws foo.jnlpを実行するだけで十分です。

+0

それは素晴らしいですが、私は1024MBのようなものを要求すると、なぜ455MBしか割り当てられないのですか? –

+0

これは間違っている可能性があり、デフォルト動作です。それとも、できることをあなたに与えるだけです。難しい - いくつかのJNLPを表示する。 –

+0

JNLPはリンク先のページから来ています。質問するコメントを参照してください。 –

4

あなたはこのように、J2SEタグでヒープサイズを指定することができます。

<resources> 
    ......... 
      <j2se version="1.6.0+" href="" initial-heap-size="1024m" max-heap-size="3000m" /> 
      <j2se version="1.5.0_05" href="" initial-heap-size="1024m" max-heap-size="3000m" /> 
      <j2se version="1.4.2_04" href="" initial-heap-size="1024m" max-heap-size="3000m" />   
    ......... 
    </resources> 

そして、あなたが使用するすべてのJREバージョンを指定します。

+0

私が知っている限り、私はシステム上に1つのjreしか持っていません。彼らが作成した.jnlpファイルには 'j2se'タグが1つしかなく、' 1.5 + 'というバージョンがありました。私は自分のシステムで1.6.0_18を実行しているので、それをカバーする必要があります。 –

+0

@Daniel jnlpなしでアプリケーションを実行しようとしましたか(コマンドラインからjava -jar myapp.jar -Xms1024m -Xmx3000m)コマンドラインから実行しても同じ問題がありますか? – Enrique

0

blast2go start pageから解決策を試しましたか?

は「Blast2GOは、より多くのメモリを必要とするダイナミックメモリJNLPのURLを使用します?」

http://bioinfo.cipf.es/blast2go/webstart/makeJnlp.php?mem=<put here the amount of memory you need> 

ここで何が起こっているか明らかではないが、私はblast2goである可能性が高いと思いますいくつかの手作業によるメモリ管理の仕組みをしています。このような場合、JNLPファイルを調整する場合に設定する必要のあるアプリケーション固有の引数またはプロパティが存在する可能性があります。

+0

JNLPの正しい場所に数字を置くだけです。何もない。 –

+0

それは私が全部使い続けてきたものです。私が何をメモリ容量にしても、455MBしか得られません。 –

2

手動コマンドラインパラメータを使用して設定してください。このような何か:あなたが欲しいどのくらいのメモリを示すにはどうすればよい

<j2se version="1.6+" java-vm-args="-Xms3072m"/>

+0

私はこれを打ちましたが、残念ながらそれは動作しませんでした。 –

+0

(少なくともJava 8では動作しません) – jan