1

I have a Java based webapp which I have deployed on one of our server. Sometimes the JVM died because of out-of-memory error. The application is kinda heavy as it uses Cometd(Push mechanism) heavily and some columns are encrypted. For this, I decided to monitor the application, but for some reason, VisualVM wont show sampling and CPU usage. It says that the JVM is not supported.

The 2nd problem I am having is that the update time of VisualVM is too slow. I want to decrease the intervals between which it monitors, but no luck finding that option as well.

I am running Debian Wheezy, 64 bit and Java8-64bit. The application-container is Apache tomcat and DB is Postgres. Jstatd is already started. I am new to profiling and monitoring, any help would be nice.

Here are the screenshots. Kindly have a look.

Thank you.

Update

Here is the updated screenshot of how it looks without the config mentioned below:

Screenshot

And my catalina.sh has some server config like :

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"

Here is after the above configuration with the new GC :

Updated screenshot after new GC

We are Borg
  • 177
  • 1
  • 18
  • I cannot even call Perform GC or Heap Dump. – We are Borg Oct 06 '15 at 14:51
  • Take a look in http://stackoverflow.com/questions/1755819/cpu-and-profiling-not-supported-for-remote-jvisualvm-session and http://stackoverflow.com/questions/7417976/jvisualvm-memory-sampling-remote-applications-are-not-supported – Federico Sierra Oct 06 '15 at 15:56
  • @FedericoSierra : Thank you very much for your help, the first link was useful to configure JMX. I just want to understand how to understand as to which graph is good and which is bad. I have updated main post and put the screenshots of one with default GC and one with the config I posted. I would like to hear any recommendations or suggestions you have. Thanks a lot. :-) – We are Borg Oct 07 '15 at 15:11

1 Answers1

1

Adding this to target JVM application works for me:

-Djava.rmi.server.hostname=localhost
HBruijn
  • 77,029
  • 24
  • 135
  • 201
sojin
  • 21
  • 1