Frage

I am trying to to detect what causes massive spikes in our Java struts bases web application deployed in Jboss. I have used Yourkit and visualVM to take dumps and have analysed dumps but these spikes are momentary and by the time the dump is taken nothing remains.

Question is - is there a way to detect what is causing a spike in the runtime?

War es hilfreich?

Lösung 2

As most likely garbage collection can cause such an issue, I'd recommend enabling the garbage collection logging in the JVM using these command line options:

  • -Xloggc:<path and filename to log to>
  • -XX:+PrintGCDetails

Andere Tipps

Here are a couple of ideas:

  • Examine your request logs to see if there is any correlation with the spikes and either request volumes or specific request types.

  • Run the JVM with GC logging enabled and look for correlations.

  • Enable your debug-level logging in your application and look for correlations. (Be cautious with this one because turning on more application logging could change performance characteristics.)

  • (On Linux / Unix) run vmstat and iostat and look for correlations with extra disc activity or swapping/paging.


If you have a spike in the object creation rate or in the number / size of non-garbage objects, this is most likely caused by your application rather than the JVM or operating system. There is a good chance that it is due to a transient change in the nature of the application's workload; e.g. it is getting a spike in the requests, or it there is some unusual request that involves creating a lot of objects. Focus on the request and application logs.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top