I have a jvm whose actual memory use is well in excess of the limits with which it's being launched. It's a Sun VM:
root@jira:/opt/atlassian/jira/jre# ./bin/java -version java version "1.6.0_26" Java(TM) SE Runtime Environment (build 1.6.0_26-b03) Java HotSpot(TM) Server VM (build 20.1-b02, mixed mode)
and it's been configured with a max heap of 768MB (
-Xmx768m) and a max permgen of 256MB (
-XX:MaxPermSize=256m) but the processes is going well past 1GB, currently at 1.7GB.
I'm used to Java apps with memory leaks killing themselves with OutOfMemoryErrors when they exceed their limits, not being killed externally when the Linux OOMKiller starts shooting processes.
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND jira 23030 2.7 70.5 2181356 1457748 ? Sl Nov30 34:52 /opt/atlassian/jira/jre//bin/java -Djava.util.logging.config.file=/opt/atlassian/jira/conf/logging.properties -XX:MaxPermSize=256m -Xms256m -Xmx768m
There's 1.5GB and it's going to keep growing until the 2GB box starts to swap.
What am I misunderstanding about JVM memory limits?