On 3/31/2014 9:03 AM, elisabeth benoit wrote:
We use JVisualVM. The CPU usage is very high (90%), but the GC activity
shows less than 0.01% average activity. Plus the heap usage stays low
(below 4G while the max heap size is 16G).

Do you have a different tool to suggest to check the GC? Do you think there
is something else me might not see?

You can't get actual usable GC pause information from jvisualvm or jconsole, only totals and averages. Those tools seem to be geared more towards seeing problems when your heap is too small.

To see real pause information, you can turn on GC logging and then run the log through a tool like GCLogViewer to see a graph of your collection pauses. What I used to initially see the problem was a program called jHiccup, which will show *ANY* pause, not just those caused by garbage collection. GC is almost always the reason there is a pause, though.

http://www.azulsystems.com/jHiccup
https://code.google.com/p/gclogviewer/

You can still have long GC pauses even if your max heap isn't reached.

Have you provided any GC-related options to your JVM at all? With a heap size of 4GB and a max heap of 16GB, I can absolutely guarantee that you will have pause problems unless you provide the JVM with a number of tuning options. I was frequently having pauses as high as 10 to 12 seconds on an 8GB heap, even after I switched to CMS. Further tuning was required. These options made the situation a lot better, but I think they can probably be improved:

http://wiki.apache.org/solr/ShawnHeisey#GC_Tuning

More expanded info, which references the link above:

http://wiki.apache.org/solr/SolrPerformanceProblems#GC_pause_problems

Thanks,
Shawn

Reply via email to