Java、VisualVM: Java8 ベースの Web アプリケーション用に VisualVM を適切に設定する

Java、VisualVM: Java8 ベースの Web アプリケーション用に VisualVM を適切に設定する

私は Java ベースの Web アプリケーションをサーバーにデプロイしています。メモリ不足エラーが原因で JVM が停止することがあります。アプリケーションは Cometd (プッシュ メカニズム) を多用し、一部の列が暗号化されているため、かなり重いです。このため、アプリケーションを監視することにしましたが、何らかの理由で VisualVM がサンプリングと CPU 使用率を表示しません。JVM がサポートされていないと表示されます。

2 つ目の問題は、VisualVM の更新時間が遅すぎることです。監視間隔を短くしたいのですが、そのオプションも見つかりません。

私は Debian Wheezy、64 ビット、Java8-64 ビットを実行しています。アプリケーション コンテナーは Apache tomcat、DB は Postgres です。Jstatd はすでに起動しています。プロファイリングとモニタリングは初めてなので、助けていただければ幸いです。

スクリーンショットはこちらです。ぜひご覧ください。

ありがとう。

アップデート

以下は、以下の構成がない場合の最新のスクリーンショットです。

スクリーンショット

そして、私の catalina.sh には次のようなサーバー設定があります:

CATALINA_OPTS="$CATALINA_OPTS -server -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+UseAdaptiveSizePolicy -Dcom.sun.management.jmxremote=true
-Dcom.sun.management.jmxremote.port=portnumer -Dcom.sun.management.jmxremote.authenticate=true 
    -Dcom.sun.management.jmxremote.ssl=false"

新しい GC を使用した上記の構成は次のようになります。

新しいGC後のスクリーンショットを更新しました

答え1

これをターゲット JVM アプリケーションに追加すると、うまくいきます:

-Djava.rmi.server.hostname=localhost

関連情報