問題タブ [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 投票する
5 に答える
27710 参照

java - 暴走した Java スレッドの Java スレッド ID とスタック トレースを取得する

最も負荷の高い実稼働インストールでは、無限ループに陥ったように見える単一のスレッドが発生することがあります。多くの調査とデバッグを行った後、犯人が誰であるかを突き止めることはできませんでしたが、それは可能であるように思われます. 悲惨な詳細は次のとおりです。

現在のデバッグに関する注意事項:

1) ps -eL 18975は、問題の子スレッドである Linux pid 19269 を表示します。

2) jstack -l 18975はデッドロックがないことを示し、jstack -m 18975は機能しません

3) jstack -l 18975は、すべてのスレッド (~400) のスタック トレースを提供します。スレッド スタックの例 (問題ではありません):

4) ps -eL 出力のスレッド ID が jstack からの出力と一致しないか、少なくとも表示できません。(jstack のドキュメントは少しまばらです。)

5) 大量の IO、メモリ使用量、または対応するその他の対応するアクティビティの手がかりはありません。

プラットホーム:

  • Java 6
  • トムキャット6
  • RHEL 4 (64 ビット)

Linux ps 出力から問題の子 Java スレッドに接続する方法を知っている人はいますか? こんなに近くて、まだ遠い…

0 投票する
6 に答える
17345 参照

java - Windows での Java スタック トレース

Windows を使用するクライアント マシンで実行されている JVM プロセスのスタック トレースを取得する必要があります。

クライアントには JRE がインストールされていますが、JDK はインストールされていません。

JStack を使用したいのですが、JStack がインストールされておらず、クライアントのマシンに JDK をインストールできません。また、Java Webstart セッションから AdaptJ スタック トレース製品を使用しようとしましたが、リモートで接続すると、指定された PID でアプリケーションを開始したセッションではないというエラーが発生するため、機能しませんでした。

基本的に、JDK をインストールせずに JStack をインストールする方法が必要です。

0 投票する
4 に答える
883 参照

c++ - C++で同等のjstack

jstackは、実行中のプロセスのスタックトレースをチェックするのに非常に役立ちます。

このタスクを実行するためのC++のツールはありますか。Solaris/GCCコンパイラを使用しています。

実際、GDB/DBXはそれを行うことができます。しかし、私のプロセスは非常にまれにそ​​れを時々ぶら下げています。だから、それがぶら下がっているとき、私はそれがどこで間違っているのか知りたいです。ライブでそれを追跡するだけです。

ありがとうDLクマール

0 投票する
5 に答える
27209 参照

java - Jstack およびこのコマンドを処理するのに十分なストレージがありません

Java アプリケーションで jstack コマンドを実行しようとしています。アプリケーションはかなり大きく、約 4 GB のメモリを占有する jboss AS 内で実行されます。OSはWindows Server 2003 Standard版です。「このコマンドを処理するのに十分なストレージがありません」というエラーが表示されるたびに。十分な RAM、16 GB、およびディスク容量があります。それで、何かアイデアはありますか?

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

java - Javaスレッド:実行中のJVMのスレッド状態の解釈

Javaスレッドは、常に次の10の状態のいずれかになります。

未使用の状態(UNINITIALIZED)はリストから省略されています。

状態の定義は上に示されていますが、実行中のappserverの特定のスレッド状態設定を解釈するための「経験則」を探しています。そして、より具体的には:

さまざまな時点で、次のスレッド統計( jstackを使用して取得)を持つライブアプリケーションサーバーを想定します。

  • 100スレッド:BLOCKED35、65IN_NATIVE
  • 113スレッド:BLOCKED35、77、1IN_NATIVEIN_VM
  • 52スレッド:BLOCKED38、1、6、7IN_JAVAIN_NATIVEIN_VM
  • 120スレッド:BLOCKED39、1、80IN_JAVAIN_NATIVE
  • 94スレッド:BLOCKED34、59、1IN_NATIVEIN_NATIVE_TRANS

5つの統計のスレッドごとに、JVMの全体的な状態に関して何を推測できますか?つまり、「このシナリオでは、JVMは要求を待機しているように見えます」、「マシンは要求の処理でビジーです」などです。

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

java - jstack の出力を理解するのに役立ちます

Java Webstart を介してデプロイされたデスクトップ Java/Swing アプリケーションがあります (クライアントは XP で Java 6u20 を使用しています)。アプリケーションがハングするという断続的な報告をユーザーから受け取りました。UI が描画されていない (EDT がブロックされているかのように) ことが判明したハング中に、このようなシステムになんとかログオンできました。

jstack を使用してスレッドを一覧表示しました。出力にデッドロックについての言及は見られません。私は jstack にまったく慣れていないので、他に何を探すべきかわかりません。

スタック トレースを編集して、stackoverflow の制限内に収まるようにする必要がありました。

ありがとう、
フィル

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

java - 実行中のJVMでjstackを実行するのはどれくらい「高価」ですか?

スクリプトを作成することを検討しています

  1. 1 分に 1 回 (または 5 分ごとに) 実行する
  2. 本番環境で実行中の JVM に対して jstack を実行する
  3. jstack の出力を解析し、興味のあることを集計する
  4. 別のサーバーに一元化された Cacti インストールによって 24/365 のグラフ作成の結果をエクスポートします

しかし、実行中の JVM で jstack がどれほど高価で侵略的であるかについては、私にはわかりません。実行中の JVM で jstack を実行するとコストがかかりますか? 私は傷ついた世界に身を置いていますか?

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

java - JStack for Java 1.5?

Java1.5VMでJStackを使用したい。いくつかのWebページで、このバージョンのJStackのバージョンが存在することがわかりましたが、見つかりません。

JDKのバージョン1.5.0_22と1.5.0_10があり、jstackは含まれていません。JavaSDK1.6に含まれています

別のダウンロードですか?それとも別のリビジョンに含まれていますか?

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

java - デッドロック時の奇妙なスレッド ダンプ

Java アプリケーションの起動中に奇妙なデッドロックが発生しました。アプリケーションで jstack を実行して調査すると、AWT-EventQueue が Object.wait() にあることがわかりますが、スレッドはまだ RUNNABLE としてマークされています。スレッド ダンプの関連部分を含めました。誰かがこの問題に光を当ててくれることを願っています。

さらに、静的変数へのアクセスが関係している可能性があると言及しているこのスレッドに気付きました。これは、私たちのアプリケーションにも当てはまります。問題の getEAOTableLite の行は、静的メソッドを参照しています。

0 投票する
4 に答える
22533 参照

java - How do I create a thread dump via JMX?

I have a Tomcat running as a Windows Service, and those are known not to work well with jstack. jconsole is working well, on the other hand, and I can see stacks of individual threads (I'm connecting to "localhost:port" to access it).

How can I use jconsole or a similar tool to dump all the thread stacks into a file? (similar to jstack)