問題タブ [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 に答える
306 参照

linux - jstack -l の回避策

my-app特定のユーザーから実行されているという名前の Java アプリがありmy-app-user、1 時間に 1 回スレッド ダンプを取得したいと考えています。JDKにバンドルされているものを見つけ、フラグjstackを付けて実行したい。しかし、残念ながら、スレッド ダンプを取得したい場合は、ユーザー-lとして jstack を実行する必要があることがわかりました。my-app-user問題は、jstack に root:root 所有権があり、それを変更できないことです。この問題の回避策はありますか? どうすればこれを解決できるかわかりません。

ありがとう

0 投票する
3 に答える
310 参照

java - Java ConcurrentHashMap.keySet() がハングする

Linux ボックスで奇妙な動作が見られます。コードは Win 7 で正常に動作します。問題のあるコードは xmlToJavaMap.keySet() でハングします。2 つのログ ステートメントのどちらもログに記録されません!!! ヒープ ダンプにデッドロックが見つかりません。

プラットフォーム: Java バージョン "1.7.0_11" Java(TM) SE ランタイム環境 (ビルド 1.7.0_11-b21) Java HotSpot(TM) 64 ビット サーバー VM (ビルド 23.6-b04、混合モード) Red Hat 4.4.7

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

java - GC ログは私を混乱させる

質問の後、STWのようにすべてのスレッドがブロックされ、応答がないため、JAVA_OPTSをいくつか追加しました。

これが私の新しいオプションです。

そして、アプリはたった今動作を停止しました。

これが ( wasgc logの最後の単語)の最後の行です。gc logstopped:

次に、コマンドを使用しました。その後、jstack -mアプリは正常に戻りました。

次の gc ログは次のとおりです (最初の行305.4698351 secondは i execute thejstack commandの時間からアプリが動作を停止した時間を差し引いたものです)。

その時点2016-01-09 18:43で、アプリは再び機能しなくなりました。

その後jstack -m、もう一度コマンドを使用すると、アプリは再び正常に戻りました。

これがgcログです。

jstack -mコマンドを実行した後、メモリが解放できなかったように、GC log ParNew: from size->to size(9437184K)が異常にto size大きくなりjstack -m、2回目の実行で、しばらくするとtoのサイズが小さくなりました。

システムが正常でない場合、jstackコマンドはオプションを追加する-F必要jmapがあり、数時間実行する必要があります。

ここでは、jstack -F結果ファイル内の特別なスレッドを示します。in_vm を除くすべてのスレッドの状態はブロックされます。

ここに私の環境があります。

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

java - jstack スレッド ダンプは一貫していますか?

からスレッド ダンプを取得しましたjstack。2 つのスレッドが同じオブジェクトでロックされていることを示していますlocked <0x00000000c0313ce0>。jstack が最初のスレッドのスタック トレースを同じ時点ではなく、2 番目のスレッドのスタック トレースを取得したときに表示する状況はありますか? または、そのようなロック状況の原因として他に何が考えられますか?

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

java - Java スレッド ダンプの分析

私はこれが実際に何を意味するのかを理解するために最後の日を費やしました. これに関する十分な情報がないか、有用なものが見つかりませんでした。

「状態待ち」とは?モニターで待っていますか?「0x00007f445cd1a000」は何を示していますか?

「待つ駐車場」とは?そして「0x00007f59c9e1c278」とは?

ソースコード:

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

java - JStack tid と Thread.getId の関連付け方法

Jstack 出力には tid (スレッド ID) が含まれます。私は、tid が Thread.getId() の 16 進値に対応していると信じています。しかし、そうではありません。これを具体的な例でテストしたところ、異なる値が得られました。tidがどのように形成されるかに興味があります。Thread.getId() の値で jstack のスレッドを見つけるにはどうすればよいですか?

例: