Hi Anurag,
Here are my observations and few suggestions in your GC report:
1) Full GCs are consecutively running in your application. It might cause intermittent OutOfMemoryErrors or degradation in response time or high CPU consumption or even make application unresponsive. Below
a. Increase JVM Heap Size:
Since you have allocated the JVM heap size around 4.5GB, then try increasing it to 5.5 GB and see whether it resolves the problem.
b. Add more JVM instances:
Adding more JVM instances is another solution to this problem. When you add more JVM instances, then traffic volume will get distributed. The amount of traffic volume handled by one single JVM instance will go down. If less traffic volume is sent to a JVM instance, then fewer objects will be created. If fewer objects are created, then you will not run into the consecutive Full GC problems.
2) GC Throughput: Your application's throughput is 97.664% which is very poor. Please watch this short video clip to learn the consequences for poor throughput.
3) Full GC - Allocation Failure' GC event- Due to Full GC - Allocation failures your application is creating too many objects.(1.4 tb).
Solution:
Here are the potential solutions to address this problem:
a. Increase the number of concurrent marking threads by setting '-XX:ConcGCThreads' value. Increasing the concurrent marking threads will make garbage collection run fast.
b. Force G1 to start marking phase earlier. This can be achieved by lowering '-XX:InitiatingHeapOccupancyPercent' value. Default value is 45. It means the G1 GC marking phase will begin only when heap usage reaches 45%. By lowering the value, the G1 GC marking phase will get triggered earlier so that Full GC can be avoided.
c. Even though there is enough space in a heap, a Full GC can also occur due to lack of a contiguous set of space. This can happen because of a lot of humongous objects present in the memory. A potential solution to solve this problem is to increase the heap region size by using the option '-XX:G1HeapRegionSize' to decrease the amount of memory wasted by humongous objects.
Here is a pretty good introductory talk on GC tuning. It might be of help to you.
Edit your Comment