12

(jstatd を使用して) リモート アプリを監視する場合、CPU 消費量のプロファイリングも監視もできません。ヒープ監視 (G1 を使用しない場合) は機能します。jvisualvm は、「この JVM ではサポートされていません」というメッセージを表示します。CPUグラフウィンドウで。

セットアップに欠けているものはありますか? Google はほとんど結果を示しませんでした。

ローカル環境 (Mac OS X 10.6):

java version "1.6.0_15"
Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219)
Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)

リモート環境 (Linux バージョン 2.6.16.27-0.9-smp (gcc バージョン 4.1.0 (SUSE Linux))):

java version "1.6.0_16" Java(TM) SE
Runtime Environment (build
1.6.0_16-b01) Java HotSpot(TM) 64-Bit Server VM (build 14.2-b01, mixed mode)

ローカル監視は宣伝どおりに機能します。

4

4 に答える 4

14

コードと割り当てのリモート プロファイリングは、Visual VM ではサポートされていません。これはひどいですが、CPUグラフを有効にしたい場合は、JMXを有効にすることでこれを行うことができます

-Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=12345

ネットワークに基づいて、いくつかの認証設定も追加する必要がある場合があります。JMX 設定は、CPU 使用率、スレッド状態、およびリモート jstack を提供します。

リモート バージョンの機能の一覧は、次の場所にあります: Visual VM の機能

編集 Visual vm 1.2.1 の最新バージョンを入手し、VisaulVM-Sampler をダウンロードします。これは、JMX 接続から読み取り、プロファイリング情報を表示します。

于 2009-11-18T13:55:50.683 に答える
4

Eclipse Java プログラムを接続します。

ステップ 1: Eclipse -> Preferences -> Java -> Installed JREs が、visualvm を開始したのと同じ jdk を指していることを確認します。

ステップ 2:右クリック -> 実行構成が次のようになっていることを確認します。

-Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=16001

ステップ 3:以下の提案に従ってください。

https://visualvm.java.net/troubleshooting.html#jpswin2

説明: VisualVM の起動直後に、ローカル アプリケーションを監視できないというエラー ダイアログが表示されます。ローカルで実行されている Java アプリケーションは (pid ###) として表示されます。

解決策: これは、Windows システムでユーザー名に大文字が含まれている場合に発生する可能性があります。この場合、ユーザー名は UserName ですが、JDK によって作成される jvmstat ディレクトリは %TMP%\hsperfdata_username です。この問題を回避するには、すべての Java アプリケーションを終了し、%TMP%\hsperfdata_username ディレクトリを削除して、新しい %TMP%\hsperfdata_UserName ディレクトリを作成します。

また、 JVMMonitorは、Eclipse スタンドアロン プログラム監視用の適切なプラグインです。

于 2015-10-13T14:56:26.130 に答える
1

リモート バージョンがローカル バージョンよりも (わずかではありますが) 大きいためですか?

于 2009-11-18T13:04:41.193 に答える