我将在Linux上安装Tomcat,JVM堆大小为2048m(2GB)到2304m(2GB+256MB),方法是在cataina.sh file
中设置CATALINA_OPTS="-Xms2048m -Xmx2304m"
,Linux操作系统具有8GB的RAM,因此我提出了一些观点,请帮助解决此问题
- tomcat应该直接从操作系统中消耗2GB吗?
- 如果上面没有要的话,那应该要花多少呢?
- 如果内存被tomcat占用小于2GB,那么操作系统为该tomcat分配的这2GB内存仅用于此,还是一些应用程序可以使用此内存?
- 最后,我们设置了最大和最小内存,这意味着操作系统会为tomcat分配所有的内存?
1条答案
按热度按时间suzh9iv81#
JVM将预先分配您为
-Xms
指定的任何内存。因此,它将在启动时请求并分配2GB内存。如果以后需要更多内存(最多-Xmx
),JVM将从操作系统请求更多内存。但是,你知道你需要这么多内存吗?内存消耗的主要驱动因素是你的应用程序 * 而不是 * Tomcat。带有几个servlet或JSP的简单Web应用程序可以在不到32 MB的堆中轻松运行。你需要衡量你的应用程序的性能/负载,以确定最佳设置。
附带说明-设置JVM参数的首选方法是使用
setenv.sh
中的JAVA_OPTS
设置,而不是catalina.sh。