11

JVisualVM(Windows XP、Sun Java 1.6.0.13、32ビットクライアントVM)を実行して、離れたアプリケーション(Linux、Sun Java 1.6.0.07、64ビットサーバーVM)を監視します。実際のリモートアプリケーションを起動する前にjstatd、オールアクセスポリシーを使用してリモートマシンで起動します。

grant codebase "file:${java.home}/../lib/tools.jar" {
   permission java.security.AllPermission;
};

次に、コマンドラインを使用して実際のアプリを起動します

 java -Dcom.sun.management.jmxremote.authenticate=false 
-Dcom.sun.management.jmxremote.ssl=false 
-Dcom.sun.management.jmxremote.port=3333 
compileTest.Main

クライアントマシンから、遠くのアプリを見て監視することができます。スレッドダンプなども作成できます。残念ながら、ヒープダンプボタンはグレー表示になっています。

JVisualVMを使用してリモートで監視されているアプリケーションからヒープダンプを取得するにはどうすればよいですか?

jConsoleを使ってみました。jConsoleを使用すると、com.sun.management.HotSpotDiagnosticdumpHeap操作を使用して遠隔ヒープダンプを作成できます。ダンプをクライアント側に転送し、JVisualVMが提供するツールを使用して分析したいと思います。これどうやってするの?

4

4 に答える 4

7

それを行う方法があります!

  1. rmir​​egistry -J-Xbootclasspath/p:$JAVA_HOME/lib/sa-jdi.jar (これはポート 1099 を使用します)
  2. アプリケーションが実行されているマシンで「jsadebugd」を開始します: jsadebugd & (JVM の pid)
  3. リモート マシンでは、次の jmap -dump:file= :1099 を使用します

  4. ジャット

上記は、ポート 7000 で Web アプリケーションを開始します。

上記のツールはすべて JDK 1.6 の一部です

ではごきげんよう!

于 2009-05-06T12:08:02.333 に答える
2

1.3 以降、VisualVM はリモート ヒープ ダンプをサポートしています。

VisualVM 1.3 以降では、ツールのヒープ ダンプ アクションとボタンを使用して、リモートで実行されているアプリケーションのヒープ ダンプを取得できるようになりました。呼び出されると、ヒープをダンプするリモート システム上のフル パスを指定できるダイアログが表示されます。ヒープ ダンプが作成されたら、手動でファイルをローカル マシンにコピーし、Load アクションを使用して、VisualVM を使用してファイルを開いて分析する必要があります。

参照: VisualVM 1.3 リリース

于 2012-04-02T04:03:06.810 に答える
0

ヒープをリモートで分析することはできません。サーバーでvisualvmを実行し、xセッションをローカルマシンにエクスポートできます。多くのサーバーがインストールしていないサーバーにx11をインストールする必要があります。

于 2009-04-24T21:01:16.067 に答える