2012-02-03 36 views
15

64ビットLinux(CentOS)マシンで、奇妙なTomcat(7.0.21)および/またはJVMエラーを診断しようとしています。Tomcatが突然終了する

サーバーアプリケーションを読み込み中に100Kメッセージで試してみました。 jvisualvmを立ち上げ、いつもヒープを見守った。私は約93Kのメッセージを処理し、Tomcatがちょうど死に至るまで、すべてが素晴らしく見ていました(下記参照)。 TomcatのPID番号にpsを入れて、それが死んでいることを確認してください。このクラッシュまでは

  • 負荷試験を約90分間実行していました。我々は93K/100Kにあったので、2ギガバイト(プラスまたはマイナスのGC後の束)を中心にしたが、ヒープサイズは、約後に4ギガバイトからMAX_HEAPに育ったCPUが強い周りの45%
  • 使用済みヒープを持っていた
  • )その後まもなく終了している必要があります30分クラスのロード/アンロードが正常に
  • スレッドダンプがサーバーコードでどこにも

通常ではなかったサイクリングた

  • System.exit()への呼び出しです - 私たちは右のアウトということを否定することができます(はい、私は、二重ました - チェック!!!)。

    これがTomcatクラッシュかJVM(どうすればいいですか?)がわかりません。そして、私が知っていた場合でも、私は何が悪かったのかの兆候を見つけることができないよう:

    • サーバーアプリケーションのログのすべてだけで、我々は普遍DEBUGに設定ロギングしているにもかかわらず(すべてのエラーメッセージなしで停止し、高い)
    • Tomcatのcatalina.outと尊敬localhost_access_*ファイルだけで、私はそれがないときTomcatがコアダンプを記録することが可能です聞いたが、それを行う方法がわからおよびオンラインではない例は」上がらない任意の情報

    せず停止大いに役立つ。

    どうすればこの問題を診断できますか?考えられるすべての要因を排除するために、どのようなステップを取るべきですか?

    ありがとうございます!

  • +13

    シュレーディンガーの風袋ですか? – erickson

    +0

    さらにログを確認しましたか? http://stackoverflow.com/questions/1575730/debugging-tomcat-crash –

    +0

    私の経験では、tomcatがOOM Killerによって殺されたかどうかを知ることができます.'Killed 'という単語はcatalina.outの終わり近くに表示されます。 – Tom

    答えて

    1

    申し訳ありません申し訳ありません@ericksonから緑の小切手を削除する必要がありました。私は最終的に何がTomcatを殺しているのかを考え出した。

    ProfilerプラグインがVisualVMで正しく設定されておらず、Tomcatプロセスでプロファイルを実行しようとしたようです。

    なぜ今すぐ調査し、一度この回答を更新します。

    +2

    あなたは、「jvisualvmがクラッシュを引き起こしている可能性もありますか? – erickson

    14

    JVMがクラッシュした場合は、hs_err_pidNNN.logファイルが必要です。これを可能にするために何もする必要はありません。その場所は、お使いのOSとTomcatの実行方法によって異なります。 Windowsでは、サービスとして実行している場合を除き、デスクトップに表示されます。それ以外の場合は、クラッシュしたプロセスの現在の作業ディレクトリになければなりません。

    ご使用のオペレーティングシステムによっては、プロセス監視のための追加ツールが提供されている可能性があります。あなたの環境をより詳しく記述したり、おそらくserverfault.comにお尋ねください。

    jvisualvmが実際にクラッシュを引き起こしている可能性もあります。

    私はこの問題を再現し、原因を特定するためにシナリオを徐々に簡素化しようとしています。

    +1

    ありがとうerickson、このログファイルはどこにありますか?私は自分のJDKディレクトリまたはそのディレクトリ内に置かれていますか? – IAmYourFaja

    +0

    ahhh nm - cwdまたは/ tmpのように見えます – IAmYourFaja

    +0

    これはお使いのOSとTomcatをどのように動かしているかによって異なります。 Windowsでは、サービスとして実行している場合を除き、デスクトップに表示されます。それ以外の場合は、クラッシュしたプロセスの現在の作業ディレクトリになければなりません。 – erickson

    6

    もう1つの可能性は、OSがメモリ不足になり、OOM Killerがプロセスを強制終了している可能性があります。この場合、JVMはヒープ・ダンプまたはhs_err_pidファイルを作成する機会を得られません。

    関連する問題