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

java - jstack 出力の解釈

.csv ファイルを使用して、多数の .csv ファイルから Neo4j データベースに大量のデータをロードする Java プロセスがありますBatchInserter。私が使用していた:

  • OpenJDK 7
  • Ubuntu 12.04
  • Neo4j 2.0 M3

最初の 164 GB をロードした後 (によるls -lh)、フォルダ サイズの増加は止まりましたが、プロセスは実行され続け、メモリは解放されず、CPU は 100% のままでした (すべてによるとhtop)。

ロード プロセスはシングル スレッドで、JVM だけが複数のスレッドを使用していParallelGCます。

この種の問題を診断する方法はわかりませんが、試すように指示されたjstackので、その出力を以下に示します。

何がうまくいかなかったのか、またはこれを診断する方法について提案がある人はいますか?

特に、これらのヒープ値について少し洞察を与えたり、それらについての良い読み物を提案したりできる人はいますか?

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

java - jstack が Windows クラッシュ ダンプから Java スレッド スタックを出力できない

WER がクラッシュしたときに取得したネイティブ ダンプから Java ヒープ ダンプを抽出しようとしています。

しかし、次の例外が発生します。

私はそれを再確認しました:

  • クラッシュが発生したシステムと同じバージョンの Java を実行しています
  • Windows のビット数 (32) は、クラッシュが発生したシステムと一致します
  • jvm.dll はパスにあります
  • Windbgがインストールされています

jmap を使用して Java ヒープ ダンプを抽出しようとすると、まったく同じエラーが発生します。

誰が何がうまくいかないのか知っていますか?

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

java - Java Runtime.exec が JSTACK コマンドを正しく実行できない

Runtime.exec を使用してjstackコマンドを実行しようとしていますが、エラーがあるようですが、それを見つけることができません。さらに、CMD で次のコマンドを実行すると、正常に動作します。

C:\Users\bob>"C:\Program Files\Java\jdk1.6.0_18\bin\jstack" 5540 > d:\s.log

テスト クラスの全文:

出力:

どうすればこの問題を解決できますか?

前もって感謝します。

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

java - java - JVMスレッドの優先度を取得するには?

jstack はスレッドの優先順位情報を提供するはずだと思っていましたが、たとえばこれしか得られません...

スレッドの優先度を見つけるにはどうすればよいですか?

OS: Ubuntu 10.04.4

Java 1.6.0_26

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

deadlock - リモート サーバーでの Java デッドロックの検出

paramiko と fabric api を使用して ssh 経由でリモート サーバーをチェックする単純な監視 python プログラムを作成しました。リモート サーバーの Java プログラムでデッドロックが発生したかどうかを確認したいと考えています。

を使用してローカルでこれを実行できることを知っています

しかし、Pythonを使用してssh経由でこれを行うにはどうすればよいですか?

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

java - jstack コマンドのフレームとは

jstackjstackのオンライン ドキュメントを調べて、Java コマンドを理解しようとしています。

jstack は、特定の Java プロセス、コア ファイル、またはリモート デバッグ サーバーの Java スレッドの Java スタック トレースを出力します。Java フレームごとに、完全なクラス名、メソッド名、'bci' (バイト コード インデックス)、および行番号 (利用可能な場合) が出力されます。-m オプションを指定すると、jstack はすべてのスレッドの Java フレームとネイティブ フレームの両方を「pc」(プログラム カウンタ) とともに出力します。ネイティブ フレームごとに、'pc' に最も近いネイティブ シンボルがあれば、それが出力されます。C++ マングルされた名前はデマングルされません。C++ 名を解読するために、このコマンドの出力を c++filt にパイプすることができます。

このコマンドを理解するのを手伝ってください。

1)コアファイルは、スタックトレースを出力したいファイルの名前ですか、それとも違いますか? ここでのリモート デバッグ サーバーとは何ですか? また、どのように使用または構成できますか?

2) このコンテキストでの Java フレームとは何ですか? また、スレッドのネイティブ フレームとは何ですか?

3) マイクロプロセッサを学んでいたときにプログラムカウンタについて学びましたが、同じ概念は Java にも適用されますか?

4) PC に最も近いネイティブ シンボルとはどういう意味ですか? また、Java での c++ の使用方法についても、Java を学んでいるときに c++ に出くわしたことはありません。

明確にしてください、事前に感謝します。