
私は 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 を使用した上記の構成は次のようになります。
答え1
これをターゲット JVM アプリケーションに追加すると、うまくいきます:
-Djava.rmi.server.hostname=localhost