I'm using a Red Hat tomcat7 container (very similar as the tomcat7 on docker hub):
registry.access.redhat.com/jboss-webserver-3/webserver30-tomcat7-openshift:1.2-12
I've deployed some .wars in it but after performing a lot of process I got the following error:
GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
So I want to investigate the max heapsize and the other memory settings:
Command:
java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
Output:
Picked up JAVA_TOOL_OPTIONS: -Duser.home=/home/jboss -Duser.name=jboss
intx CompilerThreadStackSize = 0
{pd product}
uintx ErgoHeapSizeLimit = 0
{product}
uintx HeapSizePerGCThread = 87241520
{product}
uintx InitialHeapSize = 125829120
{product}
uintx LargePageHeapSizeThreshold = 134217728
{product}
uintx MaxHeapSize = 1983905792
{product}
intx ThreadStackSize = 1024
{pd product}
intx VMThreadStackSize = 1024
{pd product}
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
I don't know how I have to interpret this information. I thought about increasing the heapsize.
- What is the meaning of pd product or product?
- Is the max heapsize = the max memory consumption of java or of your application or of your whole tomcat? Because after some investigation I saw the container was using a lot more memory than 1892 MB (19839...) when it had the
outofmemory
issue.