我看到Tomcat的RAM消耗在操作系统和jVisualVM之间存在不匹配。
从htop可以看到,Tomcat JVM有993 MB的驻留内存。
从jVisualVM可以看到,Tomcat JVM正在使用:
- 堆最大值:1,070,399,488 B
- 堆大小:298.438.656 B
- 堆已用:可变,介于170MB和270MB之间
- PermGen最大值:268,435,456 B
- PermGen大小:248,872,960 B
- PermGen已用:略微变化,大约150MB
根据我的理解,操作系统内存消耗应该是Heap Size + PermGen Size ~= 522 MB。但这比我观察到的少了471 MB。
有人知道我错过了什么吗?
PS:我知道我的最大堆远高于实际使用,但我假设如果JVM不使用它(即Heap Size较低),那应该没有影响。
谢谢! Marc