WildFlowインスタンスには、36コアサーバー上で実行される単純なJava Restアプリケーションが含まれています。アプリケーションには、バックグラウンドで実行されているデフォルトのジョブはありません。ユーザーの要求(1日あたり< 500)に応答します。WildflyでJavaアプリケーションのリモートデバッグスタックを分析する
私たちの管理者は、今日の奇妙な行動に気付きました。 wildflyのインスタンスは、午前2時以降、サーバーの全容量を使用していました。その時点では、ユーザーはアプリケーションを使用できませんでした。夕方前の最後のユーザーアクションと今朝の最初のユーザーアクションとの間にログファイルはありません。
私はEclipseでリモートデバッガを起動しました。実際にWildflyによって開始されたすべてのスレッドが実際に何をしているのか理解したいと思いますか?
Thread[MSC service thread 1-xx](Running)
68エントリ。それらのスレッドは何ですか?パフォーマンス/キャパシティ・カバレッジに影響を与えている可能性はありますか?これらのスレッドの数を制限できますか?私はそれをすべきか?Deamon Thread [weld-worker-xx](Running)
25件。Thread[default task-x](Running)
8 entries。これらはおそらく実際のユーザータスクですか?Thread[XNIO-1 I/O-x](Running)
2エントリ。データベースへの入出力?または、ログe.q.などの任意のファイル?Daemon Thread [Transaction Reaper](Running)
Deamon Thread [Transaction Reaper Worker 0](Running)
Thread [Periodic Recovery](Running)
<not responding>
たくさんの 。それは実際にはどういう意味ですか?スレッドは実行されていますが、私は一見を持っていませんか?一般的に
これは非常に広い質問ですが、私はあなたの問題が応答していないスレッドにあると考えています。私は彼らが熱心に回転してCPUを食べていると思います。 – Kayaman
'kill -3 'を発行して、Wildflyがスレッドダンプをstdout(何らかのファイルにリダイレクトする必要があります)に出力させることもできます。後で分析できるようにダンプを保存します。 –
Kayaman
こんにちは加山さん、ありがとうございました。 '<応答していない>'スレッドは、再起動後に消え、パフォーマンスはかなり良くなりました。次に問題が発生したときにスレッドダンプを印刷しようとします。私はまだ他のすべてのスレッドスタックエントリの説明に関心があります。だから、どんな説明も素晴らしいだろう! –