0
私は春のApache TomcatでWebアプリケーションを実行しています。私はJmeter
ストレステストでテストを行っていますが、ヒープは速く満たされ、ガベージコレクションされていません。ヒープダンプを解析すると、メモリリークの疑いがあるのはTaskQueue
でしたが、私たちのコードではタスクを実行していません。
私の質問は、リクエストの処理中で、上記の設定を持つサーバーへの応答は、タスク関連のクラスを使用しています。メモリリークの容疑者がアプリケーションのApache TomcatとSpringフレームワークによるHTTPリクエストとレスポンスの流れ
One instance of "java.util.TaskQueue" loaded by "<system class loader>" occupies 680,207,896 (82.39%) bytes. The instance is referenced by org.apache.tomcat.util.threads.TaskThread @ 0xc1b52018 ajp-bio-8009-exec-243 , loaded by "java.net.URLClassLoader @ 0xce67a9b8". The memory is accumulated in one instance of "java.util.TimerTask[]" loaded by "<system class loader>"
アプリケーションのスループットが不十分なため、要求が多すぎました。 これは、GCがまったく機能しない理由の原因になる可能性があります。ストレステストのリクエスト数(またはサイズ)を揃えてください。 – dgregory
こんにちはbroおかげで、私はjmeterを使用してヒットの数を減らしましたが、メモリが800 MBから縮小された600 MBレベルであっても、それでも一定のレベルではっきりしています。 – Sharan
jmeterでシステムメトリックグラフをアップロードできますか?そして、あなたは強制的にGCを強制的にトリガしますか? – dgregory