我有一个基于 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