9

VPSでTomcatWebアプリを使用していますが、Tomcatが時々(月に1回程度)クラッシュし、catalina.outで次のエラーが発生します。

Java HotSpot(TM)64ビットサーバーVM警告:例外java.lang.OutOfMemoryErrorが発生し、シグナルSIGTERMをハンドラーにディスパッチしました-VMを強制的に終了する必要がある場合があります。

これが私の構成に関するいくつかの詳細です:

  • VPS:debian-5.0-x86_64

  • RAM:2.5 GB、

  • 仮想プロセッサ:8

  • HDD:60gb hdd-70%無料

  • Tomcat 7.0

  • javaバージョン:

    java version "1.6.0_18"
    OpenJDK Runtime Environment (IcedTea6 1.8.13) (6b18-1.8.13-0+squeeze1)
    OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode)
    
  • Javaパラメータ:-Xms512m -Xmx1024m

そのサーバーにはApache-PHPもあります。

Muninを使用してサーバーの負荷を監視していますが、メモリとCPUの使用率は常に安定しており、クラッシュする前に増加は見られませんでした。

また、java.lang.Runtimeクラスを介してJavaメモリ使用量をログに記録しています。これは、jvmが常にmax200Mbメモリを使用し、クラッシュする前に増加がなかったことを示しています。クラッシュする前の最後のログは40秒前で、その時間使用メモリは152Mbでした。

私のWebアプリは、さまざまなパブリックAPIからデータを収集する6〜7個のスレッドも実行します。これらのスレッドは、Tomcatの起動時に開始され、常に定期的なスリープで実行されます。

クラッシュする理由を教えてください。どうすれば理由を見つけることができますか?

4

4 に答える 4

0
  • シェルから実行topして、Linux が Java プロセスが占有しているメモリ量を確認します。

  • マシンの全体的なメモリ使用量を確認してください。他のプロセスがすべてのメモリを消費し、Linux が JVM を強制終了している可能性があります。Mysql や Postgress などのデータベースが疑わしい可能性があります。

  • /var/log/messages異常なイベントのクラッシュ前後の期間を確認します。

于 2012-06-22T12:00:41.510 に答える
0

次のように、Tomcat Java 起動メモリを増やします。 set JAVA_OPTS=-server -Xms256m -Xmx512m

于 2017-09-09T16:13:47.537 に答える