JProfilerなどのツールを使用できることは知っています。リモート監視だけでメモリ使用量を表示するように構成する方法についてのチュートリアルはありますか?
何か案が?
VisualGCを使用していますが、それほど高度ではありませんが、アプリケーションのメモリ使用量(ガベージ、古い、パーマなど)を確認できます。
http://java.sun.com/performance/jvmstat/visualgc.html
再開するには:リモートマシンでデーモン監視を起動します(http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jstatd.html、セキュリティパラグラフを参照)
JAVA_HOME/bin/jstatd -J-Djava.security.policy=jstatd.all.policy
ここにjstatd.all.policyというファイルが含まれています。
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
リモートマシンで、jpsツールを使用してデバッグするアプリケーションのpidを取得しました。
http://java.sun.com/j2se/1.5.0/docs/tooldocs/share/jps.html#jps
最後に、ローカルマシンで、visualgcを起動します。
visualgc the_pid@remote_machine_address
私は通常、優れたアプリケーションである YourKit を使用します (ライセンスが必要です)。
Web サーバーの起動/シャットダウン スクリプト (Tomcat の catalina.sh) に次のように入力します。
JAVA_OPTS="-Djava.awt.headless=true -agentlib:yjpagent -Xrunyjpagent:sessionname=Tomcat"
YourKit が既にダウンロードされ、ライブラリ パスに追加されている必要があります (これは catalina.sh でも行います)。
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/yourkit/yjp-6.0.16/bin/linux-x86-32
その後、ローカル デスクトップで YourKit クライアントを起動し、リモート接続できます。
JavaアプリケーションのVMパラメータに変更して、次のようなリモートプロファイリングを許可できます。-agentlib:jprofilerti=port=25000
例:
Jprofiler を使用してアプリケーションをプロファイリングします。以下は、Jprofiler を使用して Tomcat を構成する手順です。
Linux マシンで、ディレクトリ.bash_profile
からファイルを開きます/root
。
jprofiller の場所を入力します (以下のコマンド export を使用)
.bash_profile file
export LD_LIBRARY_PATH=/dsvol/jprofiler6/bin/linux-x86
Tomcat インストール ディレクトリに移動します。catalena.sh
フォルダからファイルを開きbin
ます。
以下の詳細をcatelana.sh
ファイルに入力します (デフォルトで catalena.sh ファイルにある赤色の情報と黒色の情報のみ)。
export JPROFILER_HOME
JAVA_OPTS="-Xms768m -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=256m -Dfile.encoding=UTF8 -agentpath:/opt/Performance/jprofiler7/bin/linux-x86/libjprofilerti.so=port=8849 $CATALINA_OPTS"
starup.sh
コマンドを実行して、bin フォルダーからサーバーを起動します。
VisualVM の良いところを聞いたので、リモートでそれを起動する方法についての記事を次に示します。
リモート サーバーをプロファイリングするための Java VisualVM
編集: SSH トンネルを介してリモート プロファイリングをセットアップする方法に関するブログ投稿をここに書きました。