疑问背景
使用Docker运行Tomcat,且Tomcat不做任何配置,在Tomcat中运行程序。
假设限制Tomcat容器内存占用:-m 5000m --memory-reservation 4500m
据了解,Tomcat在不配置堆的情况下,初始空间(即-Xms)是物理内存的1/64,最大空间(-Xmx)是物理内存的1/4。即这里Tomcat的最大堆为5000*0.25=1250M
在portainer管理中查看Tomcat容器的内存资源占用如下:
疑问
如上Tomcat堆内存最大1250M,则Tomcat运行的服务的最大堆内存不超出1250M。这里Tomcat容器占用近2G是什么情况?即使假设Tomcat中程序占满1250M内存,虽然有一定额外服务内存占用,但不应该占用这么多内存吧?
对Tomcat容器内存资源做上述限制,按Tomcat默认堆内存分配只有1250M,此时调整Tomcat的堆设置,比例如何调整最为合适?