Reputation: 3866
We have a tomcat with following arguments Xms 1g Xmx 4g Parallel GC It is installed in Ubuntu machine with JVM 1.8.181
Lately GC is being started with full throttle and doesn't let any other process go on. What I don't understand is this takes place when even total JVM is just 2.8 GB while maximum heap can go is 4GB. Why does full GC run when mamory has not reached to max?
When I dug deep, ii found that there is a sudden change in the used and committed memory; from 1+GB to ~4GB. Does that mean that because I had set the min heap to 1 GB, it goes till 1GB only and as soon as it reaches there it increases to a next step? Because of this the Garbage collection takes place?
If yes that does that mean that in order to avoid this situation, I need to increase the min heap?
More info- this is happening when there almost 0 traffic. No background process is going on. I understand it can build up but without using anything, how can it go up! - I need to figure this out myself.
Upvotes: 0
Views: 189
Reputation: 533500
When you set the min heap to 1 GB, it starts with a 1 GB heap, thought the process itself could be a few 100 MB to a few GB more than this depending on which libraries you use. i.e. the resident size can be larger.
As the pressure on the heap grows from activity, it may decide it needs to increase the heap size. There has to be a significant load to trigger this to happen otherwise it won't change the heap.
Upvotes: 1