問題タブ [jstack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2479 参照

java - Java スレッド ダンプ、他のスレッドをブロックしているスレッドが見つからない

私たちのアプリケーションは遅れています。

jstackutilを使用してスレッド ダンプを取得しています。

データの準備と並べ替えを行います。そして、これは私が持っているものです:

198 のスレッドがブロックされています。

からわかるようにwaiting to lock <0x0000000582e56bc8>、それらはすべて ID のスレッドを待っています0x0000000582e56bc8。奇妙なことに0x0000000582e56bc8、スレッド ダンプ出力でこれを見つけることができず、彼らが何を待っているかを見つけることができません。

それとも真実ではありませんか?これは何0x0000000582e56bc8ですか?

ここにダンプの小さな平和があります:

他の 198 個のスレッド ダンプはすべて同じです

更新 1. @Holder コメントの後

更新 2 @Holder に感謝

私が理解しているようwaiting to lock <0x0000000582e56bc8>に、 は、スレッドが0x0000000582e56bc8ポインタである を待っていることを意味します。次に、 を見つける必要があります- locked <0x0000000582e56bc8>。そして、オブジェクトをロックしたスレッドが見つかります。それからスタックトレースを見て、最後に犯人を見つけました。

にも問題がある場合は、この質問com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjectorを見てください。

0 投票する
1 に答える
520 参照

java - pyCharmデバッグ:jstackなしのJRE?

Windows 7 で pyCharm コミュニティ バージョンをデバッグし、マニュアルの内容に従う必要があります。

Jスタック

このコマンド ライン ユーティリティは JDK インストールで提供され、JAVA_HOME\bin ディレクトリにあります。IDE が実行されているバージョンと同じか近いバージョンの JDK を使用してください (ヘルプ | バージョン情報を参照)。IDE が 32 ビット JDK で実行されていて、64 ビット JDK ディストリビューションから jstack を実行している場合、またはその逆の場合は機能しません。

jstack を使用するには、IDE プロセス識別子 (PID) が必要です。PID は、jstack と同じディレクトリにある jps ユーティリティを使用して取得できます。

jps-mv

私の pyCharm: ヘルプ/読み取りについて: JRE 1.7.0_40 b43 x86

ただし、C:\Program Files (x86)\Java\jre7\binnojpsと noはありませんjstack。Windows のコマンド ラインに慣れていないので、何か間違っているのでしょうか? 別のディレクトリを調べる必要がありますか? JAVA_HOMEここで手がかりを与えることができるシステム全体の環境変数を見つけることができませんでした。

0 投票する
2 に答える
104 参照

java - Java アプリの特定のスレッドの呼び出しスタックを取得することは可能ですか?

私のJavaアプリには100以上のスレッドがあり、各スレッドは同様のことをしています. jstack を使用すると、すべてのスレッドのスタックを出力できますが、情報が多すぎます。Java の特定のスレッドのスタックを出力することは可能ですか? たとえば、Java アプリの ID が 100 のスレッドのみを出力します。

0 投票する
1 に答える
3219 参照

java - このスレッド ダンプを解釈する方法

Linux サーバーでアプリケーションを実行しています。アプリケーション 1 の詳細を以下に示します
。Spring 3、Quartz 1.6.1、および httpclient 4.1.2 に基づいてページを解析します。
2. 基本的に、そのジョブは 1 時間に 1 回または 12 回 (ほとんどは 1 時間に 1 回) 実行されます。
3. すべての同時使用のデフォルト値。
私の問題は、ジョブの実行が時々停止することです。この問題は先月 2 回発生しました。前回問題が発生したとき、私は次のことを行いました。
1. 進行状況とログを確認しました。進歩はまだ生きていました。しかし、すべてのビジネス ログは長い間書き込みを停止していました。
2. gc ログを確認したところ、問題ないようでした。
3. jstack を使用して、この進行状況のスレッド ダンプをエクスポートしました。
スレッド ダンプは取得できますが、解釈方法がわかりません。誰かがこれで私を助けてくれますか?
よろしくお願いします

スレッド ダンプの内容全体を次に示します。

0 投票する
0 に答える
1036 参照

java - 状態の Jboss スレッドのほとんど = BLOCKED

jboss スレッドのほとんどは BLOCKED 状態にあり、jboss のスレッド数が減ることはありません。

スレッド数を減らす方法と、これらの多くのスレッドが BLOCKED 状態にある理由を理解したい。

450 個のスレッドのうち 380 個が BLOCKED 状態です。

以下を使用して状態を調べました