1

私のTomcatアプリケーションでは、最終的に「メモリ不足」および「メモリを割り当てられません」というエラーが発生します。システムメモリが完全にいっぱいになり、bashコマンドをほとんど実行できないため、ヒープとは関係ないと思います。

この問題はヒープにどのように関連していますか? アプリケーションが十分なメモリを持ち、システム リソースを消費しすぎないように、ヒープ サイズを正しく設定するにはどうすればよいですか?

奇妙なことに、問題が発生すると、「top」コマンドは、Tomcat がメモリの 20% しか消費せず、空きメモリがまだあると言い続けます。

ありがとう。

編集:

フォローアップ: BufferedImage のリーク - 代替手段はありますか?

4

4 に答える 4

2

bash スクリプトの実行に関する問題はI/O、問題を示している可能性があります。これは、JVM が常にフル GCを実行している場合 (ヒープがほぼ満杯の場合) に該当する可能性があります。

最初に行うことは、でヒープを増やすこと-Xmxです。これで問題が解決する可能性があります。または、メモリ リークがある場合は解決されず、最終的にはOutOfMemoryError再び発生します。

この場合、メモリ ダンプを分析する必要があります。いくつかの手順については、このスレッドの私の回答を参照してください。

また、ガベージ コレクション ログを有効にして ( を使用-Xloggc:/path/to/log.file -XX:+PrintGCDetails)、GCViewerまたはHPJmeterで分析すると便利な場合があります。

于 2012-06-05T08:38:44.910 に答える
0

オプションを指定してJVMヒープサイズを設定できます

-Xmx1024m  //for 1024 MB

Tomcatのオプション設定はこちらを参照

于 2012-06-05T08:19:02.063 に答える
0

4 GB の RAM がある場合は、3 GB を HEAP に割り当てることができます -

-Xmx3GB

于 2012-06-05T08:20:01.070 に答える
0

次のコマンドを使用して、使用可能な perm gen サイズを変更することもできます。

-XX:PermSize=128m -XX:MaxPermSize=256m

于 2012-06-05T08:23:41.070 に答える