問題タブ [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 - jstack 100% CPU
そのため、アプリケーションが時折 100% の CPU を消費する理由を突き止めようとして行き詰まってしまいました。私はいくつかの非常に役立つstackovertflowの投稿を読みましたが、安全を期すために、アドバイス...ガイダンス...支援...何でも受けたいと思います。実際にこれが起こるのは、スタック トレースを調べた経験不足です。誰かがここで考えられる犯人を指摘し、そのポインタを示してくれれば、これをよりよく理解できると本当に感謝しています.
注目すべきスレッド (私にはそう思われる) は、モニターを待っているスレッドです。
java - Java Swing : GUI の凍結 - jstack の解釈
シリアルサーマルプリンターでチケットを印刷するGuiアプリケーションを使用しています。このアクションを起動するボタンを押すと、GUI がフリーズします。コードが EDT で実行されるためだと思います。確かにjstackを使用しましたが、以下の結果がわかりません:
最初のスレッド「Thread-12」が原因で、GUI がフリーズしていることをどこで確認できるかを誰かに説明してもらえますか。
次に、このスレッドを 1 回しか実行していないと確信している限り、「Thread-6」と「Thread-7」の違いは何ですか。
java - Javaアプリのデッドロックが発生しましたが、jstackを使用してスレッドをダンプした後にロックが解除されました
私のJavaアプリは時々フリーズするので、jstack -Fでスレッドをダンプしますが、レポートにはデッドロックがなく、アプリが再び応答するようになりましたか?誰が何が起こったのか知っていますか?
hibernate 4.1.8、jetty 9M2、mysqlコネクタ5.1.22、c3p00.9.2.pre6を使用している私のアプリ。スレッドダンプはどこでもブロックされているようです。ログファイルが少し長いので、ここにアップロードしましたhttp://pastebin.com/vDCd6Kjb
java - (Linuxでは)rootとしてjstack -Fを実行する必要がありますか?その場合、その理由は何ですか?
(Linuxでは)rootとしてjstack -Fを実行する必要がありますか?その場合、その理由は何ですか?
自分のプロセスをjstack-Fしようとすると、次のエラーが発生します。
プロセスへのアタッチ中にエラーが発生しました:sun.jvm.hotspot.debugger.DebuggerException:プロセスにアタッチできません
jstack -Fは、sudoで実行すると正常に動作します。
java - ほとんどすべてのスレッドが NATIVE 状態の場合の ThreadDump の問題
ほとんどのスレッドが(state = IN_NATIVE)
状態になっているアプリケーションで、ホストのスレッド ダンプを取得しました。
これらのインスタンスでブロックされたのは、いくつかのスレッドのみです。
と
と
いくつかのリクエストを行いHttpConnections
、構成可能な時間の経過後にリクエストがタイムアウトしました。ホストを再起動すると、すべてが正常に戻りました。
したがって、スレッドはある時点でブロックされているはずだと思います。
NATIVE コードで実行されているスレッドは、ここを指していました。
これが犯人だと思います。これらの呼び出しを行うライブラリを内部的に使用ImageIO
しています。Jsoup
スレッド ダンプの読み取りについてはよくわかりません。しかし、どんな助けでも大歓迎です。
ネイティブに実行されているすべてのスレッドが問題を引き起こしている可能性はありますか? どのように進めればよいですか?
ありがとう、
java - ストールしたロックを追跡するための jstack トレースの解釈
私は Samurai を使用しており、デッドロックがなく、いくつかのスレッドが待機していることがわかりますが、どのロックがプロセスを停止させているかを正確に把握できないようです。誰でも私を助けることができますか?
私の問題が何であるかを推測する人を探しているのではなく、問題を追跡しやすくするためにコードを変更する方法についてのアドバイスを求めています。最初の送信と受信を完了した後、2 番目のメッセージを送信する必要があるときにプログラムが停止します。マルチスレッドは初めてで、jstack をプルするのはこれが初めてです
必要に応じてコードを追加する シリアル通信クラス
RobotInterface クラス
実行を要約すると、ビット文字列を含むゲノムごとに、RobotInterface スレッドを作成する for ループがあります。このゲノム参照は、RobotInterface と呼び出しスレッドが終了時に通知するための共有クラスである候補テストに保持されます。
ビット文字列は、TwoWaySerialCommTest を使用して RobotInterface によってロボットに送信されます。ロボットはそれを評価し、SerialReader によって float として解析されるフィットネス関数を返します。次に、次の文字列がロボットに送信されます。
ロックは、最初の文字列がロボットに返された後に発生し、2 番目の文字列が送信されています。最初のストリングはロボットに到達しますが、2 番目のストリングは到達しません。出力は次のとおりです-
java - jstack 内のオブジェクト ID
システムでデッドロックが発生しました。数分間隔で取得した 2 つの jstack からの抜粋を次に示します。
Jスタック1
Jスタック2
両方の jstack で、モニター ID は同じ 0x00007f1ad075d2e8と0x00007f1ad075d390ですが、オブジェクト ID は異なります。
明らかにデッドロックがあります。オブジェクト ID が異なるのはなぜですか? それらは同じであるべきではありませんか?
java - top -H は、jstack 出力に表示されないいくつかのスレッド ID を示します
jboss が 600% の CPU (CentOS 5 で実行) を使用している理由を調査しようとしています。
実行して、結果を出力top -H
と比較しようとします。jstack
トップから来るスレッド ID のほとんどは jstack の出力に表示されますが、残念ながら CPU の大部分を占めるスレッドはそこにリストされていません。
出力が非常に長いため、ここではその一部のみをリストしています。
jstack の出力は次のとおりです。
より多くのスタック....
の出力のスレッド ID は の出力にjstack
も表示されますが、 CPU を最も集中的に使用top
する上位のスレッド ID (1903 ~ 1908 年) は、jstack の出力には表示されません。
これらはGCスレッドである可能性があると思いましたが、これを証明するものは何も見つかりません.
jstack にすべてのスレッドが表示されない理由、または欠落しているスレッドを表示するために何ができるか考えていますか?
java - kill -3 または jstack : 違いは何ですか?
jboss サーバーで実行されている Web アプリケーションのスレッド ダンプを取得したいと考えています。
私の問題に対する2つの解決策を見つけました:
- unix コマンドの使用: kill -3
- JDK に存在する jstack ツールを使用します。
誰でもこれらの2つの方法の違いを説明できますか?
前もって感謝します !