jstack を使用して、CPU 使用率が最も高い PID のスレッド ダンプを取得しました。nid 0x4974 のスレッドを指していました。
"VM Thread" prio=10 tid=0x00007ffc60068800 nid=0x4974 runnable "VM Periodic Task Thread" prio=10 tid=0x00007ffc60098000 nid=0x497b 条件付き待機 JNI グローバル参照: 1182
Web で見たサンプル スレッド ダンプとは異なり、スレッドの状態と実行されているコードがないため、分析の進行に問題があります。.txt
そして、スレッドダンプファイルを分析できるオンラインのフリーウェアはありますか?
答えてくれた人ありがとう。わかりましたので、samurai、tda、および ibm スレッド ダンプ ツールの使用方法を学ぶことができました。問題は、作成されるスレッドの数、モニターを待機しているスレッド、ロックおよびブロックにあるようです。しかし、追加の入力があるかどうか疑問に思っていました。これは私がTDAから得たものです:
CPU使用率が100%のとき
Overall Thread Count 1001
Overall Monitor Count 644
Number of threads waiting for a monitor 50
Number of threads locking a monitor 636
Number of threads sleeping on a monitor 0
Number of deadlocks 0
Number of Monitors without locking threads 0
リセットしたら
Overall Thread Count 32
Overall Monitor Count 13
Number of threads waiting for a monitor 0
Number of threads locking a monitor 13
Number of threads sleeping on a monitor 13
Number of deadlocks 0
Number of Monitors without locking threads 0
すべてのスレッドの 40% がモニター上でスリープ状態になっています。
これは、オーバーロードされているか利用できない外部リソース (データベースなど) を待っているか、何かを実行するために待機していること (アイドルスレッド) を示している可能性があります。すべてのアイドル状態のスレッドを除外するフィルターを使用して、スリープ状態のスレッドを確認する必要があります。
お客様は60名ほどです。
CPU 使用率が 100% のときに、リセット後にスレッドダンプをアップロードしました。I also included the tools that i used (samurai,tda,and ibm thread and monitor dump analyzer) http://www.mediafire.com/?901mduvodm97d8v,x72cdixp8fltabu,fhfw4e50c7fzu4t,1oq2npaxmtxz0dq,i0u997fhvxfagd3,cdewe4de6x3rhe4,w2ndwqw2ekwixkd,qsbst5ow6f59p75,9fx8w8qpfdhjmyx, levpqppb3ouh71q