問題タブ [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.
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を見てください。
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ここで手がかりを与えることができるシステム全体の環境変数を見つけることができませんでした。
java - Java アプリの特定のスレッドの呼び出しスタックを取得することは可能ですか?
私のJavaアプリには100以上のスレッドがあり、各スレッドは同様のことをしています. jstack を使用すると、すべてのスレッドのスタックを出力できますが、情報が多すぎます。Java の特定のスレッドのスタックを出力することは可能ですか? たとえば、Java アプリの ID が 100 のスレッドのみを出力します。
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 を使用して、この進行状況のスレッド ダンプをエクスポートしました。
スレッド ダンプは取得できますが、解釈方法がわかりません。誰かがこれで私を助けてくれますか?
よろしくお願いします
スレッド ダンプの内容全体を次に示します。
java - 状態の Jboss スレッドのほとんど = BLOCKED
jboss スレッドのほとんどは BLOCKED 状態にあり、jboss のスレッド数が減ることはありません。
スレッド数を減らす方法と、これらの多くのスレッドが BLOCKED 状態にある理由を理解したい。
450 個のスレッドのうち 380 個が BLOCKED 状態です。
以下を使用して状態を調べました