
我有一個基於 Java 的 Web 應用程序,已部署在我們的一台伺服器上。有時 JVM 會因記憶體不足錯誤而死掉。該應用程式有點重,因為它大量使用 Cometd(推送機制)並且某些列被加密。為此,我決定監視應用程序,但由於某種原因,VisualVM 不會顯示採樣和 CPU 使用情況。它說不支援 JVM。
我遇到的第二個問題是 VisualVM 的更新時間太慢。我想減少它監視的時間間隔,但也沒有找到該選項。
我正在運行 Debian Wheezy,64 位元和 Java8-64 位元。應用程式容器是 Apache tomcat,資料庫是 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