問題タブ [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.
linux - jstack -l の回避策
my-app
特定のユーザーから実行されているという名前の Java アプリがありmy-app-user
、1 時間に 1 回スレッド ダンプを取得したいと考えています。JDKにバンドルされているものを見つけ、フラグjstack
を付けて実行したい。しかし、残念ながら、スレッド ダンプを取得したい場合は、ユーザー-l
として jstack を実行する必要があることがわかりました。my-app-user
問題は、jstack に root:root 所有権があり、それを変更できないことです。この問題の回避策はありますか? どうすればこれを解決できるかわかりません。
ありがとう
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
java - GC ログは私を混乱させる
質問の後、STWのようにすべてのスレッドがブロックされ、応答がないため、JAVA_OPTSをいくつか追加しました。
これが私の新しいオプションです。
そして、アプリはたった今動作を停止しました。
これが ( wasgc log
の最後の単語)の最後の行です。gc log
stopped:
次に、コマンドを使用しました。その後、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 を除くすべてのスレッドの状態はブロックされます。
ここに私の環境があります。
java - jstack スレッド ダンプは一貫していますか?
からスレッド ダンプを取得しましたjstack
。2 つのスレッドが同じオブジェクトでロックされていることを示していますlocked <0x00000000c0313ce0>
。jstack が最初のスレッドのスタック トレースを同じ時点ではなく、2 番目のスレッドのスタック トレースを取得したときに表示する状況はありますか? または、そのようなロック状況の原因として他に何が考えられますか?
java - Java スレッド ダンプの分析
私はこれが実際に何を意味するのかを理解するために最後の日を費やしました. これに関する十分な情報がないか、有用なものが見つかりませんでした。
「状態待ち」とは?モニターで待っていますか?「0x00007f445cd1a000」は何を示していますか?
「待つ駐車場」とは?そして「0x00007f59c9e1c278」とは?
ソースコード:
java - JStack tid と Thread.getId の関連付け方法
Jstack 出力には tid (スレッド ID) が含まれます。私は、tid が Thread.getId() の 16 進値に対応していると信じています。しかし、そうではありません。これを具体的な例でテストしたところ、異なる値が得られました。tidがどのように形成されるかに興味があります。Thread.getId() の値で jstack のスレッドを見つけるにはどうすればよいですか?
例: