問題タブ [jvisualvm]

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 に答える
1023 参照

jmx - JConsole は、JMX キーを使用してツリーをレンダリングする順序をどのように決定しますか?

JConsole で JMX Bean を表示すると、特定のドメイン部分の下にあるすべての Bean が階層としてレンダリングされます。(JVisualVM は、JConsole MBeans プラグインと同じ動作をします。)

JMX オブジェクト名が階層的ではないことは認識していますが、JConsole は階層的にレンダリングできるようにキーを特定の順序で選択しています。

キーの順序付けに使用するルールを知っている人はいますか? 左から右またはアルファベット順ではないようです。

ありがとう。

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

java - visualvm は JMX 経由でリモート プロセスに自動的に接続できますか?

リモート マシンで実行している Java プロセスがあり、そのプロセスはいくつかの mbean をセットアップします。またjstatd、そのマシンで Java プロセスと同じユーザーとして実行しています。(mbeans は、プログラムまたはその他を使用してセットアップできますが-Dcom.sun.management.jmxremote...、これは違いを生むようには見えません)。

VisualVM はjstatd自動的に検出するプロセスに接続できますが、これは、mbeans や、たとえば CPU 履歴チャートにアクセスできないことを意味します。または、明示的な JMX 接続を作成することもできます。これにより、通常の範囲の便利なツールが提供されますが、アプリケーションの起動時にランダムな JMX ポートが割り当てられるようにしたいので、この構成を静的にすることはできません。

VisualVM を JMX 経由でプロセスに自動接続する方法はありますか? これには、JMX ポートを自動検出する必要がありますが、それができると思っjstatdていました。これを自動化するためのvisualvmのプラグインを知っている人はいますか?

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

jvm - JVM スレッドを起動するのは何ですか?

(間違っていたら訂正してください)

java コマンドを発行して Java プログラムを実行すると、

プログラムは新しい JVM で実行されます。

  • プログラムを新しい JVM にロードするのは何ですか? 新しいスレッドを生成するのは JRE ですか?

  • 各プログラムが独自の JVM で実行される場合、相互に通信することは可能ですか?

  • 以前、JMX を使用してローカルで実行されている Java プログラムにリクエストを送信する方法について質問しました。JMX コマンドがローカルで発行されている場合、ポート番号は必要ないことがわかりました。その答えは、クライアント アプリケーション (jconsole、jvisualvm、jprobe など) がマシン上で実行されている Java アプリケーションを検索することでした。これは問題ありませんが、クライアント アプリケーションが監視または通信するアプリケーションとは別の JVM で実行されることを考えると、ポート番号なしで (同じ JVM で実行されていないため) どのように正確に相互にやり取りするのでしょうか?

  • 2 つのプログラムが実行されている場合、通常は 2 つの JVM があります。JVM は同じ JRE プロセス内で実行されますか? また、これは 2 つの JVM が通信できる必要があることを意味するのではないでしょうか?

ありがとう

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

java - JBoss 4.2.0 (EAP) での JMX の問題?

JBoss 4.2.0、EAP バージョンでリモート JMX を動作させる際に問題が発生しています。アプリケーションで Java OOM エラーが発生しており、特に VisualVM を実行するように設定しようとしています。

JBoss は JDK 1.5 に対して実行されています

起動時に JAVA_OPTS に以下を追加して、これを機能させようとしました (読みやすくするためにここに改行を入れています)。

JBoss を起動すると、JMX がポート 6789 で有効になっており、auth と ssl が false に設定されていることを示すエントリが boot.log に表示されます。ただし、netstat はポート 6789 でリッスンしているものを何も表示せず、ポートへの telnet 接続を取得できません。当然のことながら、VisualVM も接続に失敗します (ローカルとリモートの両方を実行しています)。

JBoss に同梱されているデフォルトの /jmx-console コンテキストは問題なくロードされるようです。

私がここに欠けているものはありますか?リモート JMX サポートは後で追加されましたか?

編集: JBoss が SSL コネクタで実行されていることを忘れていたので、たとえばhttps://localhost:8888/jmx- console 経由で jmx-console にアクセスします。多分これはJMX接続に影響を与えますか?

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

java - VisualVM CPUプロファイリングはMacで機能しますか?

VisualVMを使用して64ビットVMを搭載したMacでプロファイリングしようとしていますが、成功していません。

長い間隔でしか更新されないようです(キーボードから10分間離れて、戻って1つの更新を見つけるまではまったくプロファイルされないと思いました。2秒ごとに実行する必要があると思います)。

ほとんどの場合、「プロファイリング情報はまだ利用できません」というメッセージが表示されます。一度動作すると、合計4つのメソッド呼び出しが見つかりました。その時間枠で数百万が発生したでしょう。

アプリが終了したときのスナップショットには、いくつかのシステムスレッドが表示されていますが、私のコードは表示されていません。

デフォルトから設定を変更していません。コードが除外されていないことを確認しました。

VisualVMは64ビットJVMのプロファイリングのためにMacで動作しますか?

最新のJDKのjvisualvmと、java.netの少し後のバージョンの両方を試しました。

javaバージョン"1.6.0_22"Java(TM)SEランタイム環境(ビルド1.6.0_22-b04-307-10M3261)Java HotSpot(TM)64ビットサーバーVM(ビルド17.1-b03-307、混合モード)

システムバージョン:Mac OS X 10.6.4(10F569)

何かご意見は?それはあなたのために働きますか?

ありがとう!

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

java - jvisualvmを使用してJBoss5をプロファイリングできません

Javaアプリを一晩実行しているときに、いくつかのjava.lang.OutOfMemoryError: GC overhead limit exceededエラーが発生しました。

jvisualvmを開くと、実際にヒープスペースが不足していることがわかります。

モニター

何が起こっているのかを理解するためにプロファイルを作成したいのですが、メモリリークはありますか?など。ただし、jvisualvmプロファイラーに何も実行させることができません。このProfilerタブには、クラス共有が有効になっていることに関する警告が表示されます。

プロファイラー

... VM引数に-Xshare:offフラグを追加したにもかかわらず:

概要

それで、

  • プロファイリングを機能させる方法について何かアイデアはありますか?
  • G1GC現在使用しているGCの代わりに試してみる価値はありますか?
0 投票する
3 に答える
3431 参照

java - jvisualvm - 自動的に (JMX) アプリケーションに再接続しますか?

jvisualvm で切断された JMX 接続を再接続する方法はありますか? 監視対象の JMX 対応アプリケーションが再起動したら、jvisualvm を再起動して再接続する必要があります。何か不足していますか?

ここに私の jvisualvm の詳細があります:

バージョン: 1.6.0_22 (ビルド 100326); プラットフォーム 091221-4fc006d17cb1
システム: Linux (2.6.35-23-generic)、amd64 64 ビット Java: 1.6.0_22; Java HotSpot(TM) 64 ビット サーバー VM (17.1-b03、混合モード)

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

java - Visualvm で Web アプリケーション データを表示する方法

JDK に付属している visualvm プログラムを使用して、Tomcat で実行されている Web アプリケーションのプロファイルを作成しようとしています。接続に問題はなく、クラスが表示されないことを除いて、すべてが見栄えがよく、GUI で適切に動作します。CPU 画面を使用してプロファイリングを行うと、カタリナと他のいくつかのクラスのメソッドのみがリストされます。Tomcat が実行している webapp のメソッド呼び出しを (Tomcat 自体だけでなく) 表示するにはどうすればよいですか?

役立つ場合: これは Tomcat 6.0.26 および JDK 1.6.0.22 の場合です。

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

java - ライブ オブジェクトと割り当てられたオブジェクトの jvisualvm の違い

ここのスクリーンショットに見られるように、0 個のライブ オブジェクト、9 個の割り当て済みオブジェクト。ライブ オブジェクトと割り当てられたオブジェクトの違いは何ですか?

jvisualvm スクリーンショット

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

process - jvisualvmは特定のJavaプロセスをリストしません

特定のJavaプロセスのヒープダンプ(メモリリークの疑い)を取得したい。ただし、jvisualvmツールを起動すると、実行中のJavaプロセスが表示されません。

私はこれについてグーグルで調べましたが、jvisualvmツールを起動したときと同じJDKを使用してJavaプロセスを実行して、Javaプロセスを表示できるようにする必要があるという記事をすでにいくつか見つけました。しかし、私が見る限り、これはすでに当てはまります。私はすべてをローカルで行っています(マシンにリモートアクセスできます)。

考慮すべき点がいくつかあります。

  1. プロセスはファイアウォールで保護されたWindows2008サーバーで実行されています
  2. プロセスは、名前が変更されたバージョンのJDKjava.exe実行可能ファイルを使用して実行されています
  3. 私が見る限り、プロセスは1.6.0_18JDKを使用して実行されています。
  4. 実行中のプロセスの1つがRMIレジストリを開始します

サーバーの仮想化されたコピーを待っているので、サーバーをいじることができます(これは本番サーバーです)。しかし、その間、jvisualvm(またはそのことについてはjconsole)のプロセスを表示できない理由についてのアイデアはありますか?