Tomcat内存消耗

时间:2011-07-12 11:02:01

标签: java tomcat jvm heap tomcat7

我将在Linux上安装Tomcat,JVM堆大小为2048m(2GB)到2304m(2GB + 256MB) 在CATALINA_OPTS="-Xms2048m -Xmx2304m"中设置cataina.sh file Linux操作系统有8GB的RAM 所以我正在提出一些观点,请帮助解决这个问题

  • tomcat应该直接从操作系统消耗2GB吗?
  • 如果不是,那么应该花多少钱?
  • 如果tomcat占用的内存小于2GB,那么os为这个tomcat分配的2GB内存仅用于此,或者某些应用可以使用此内存吗?
  • 最后我们设置了这个max和min内存,意味着OS为tomcat分配了所有内存量?

1 个答案:

答案 0 :(得分:8)

JVM将预先分配您为-Xms指定的任何内存。因此,它将在启动时请求并分配2GB内存。如果以后需要更多内存(最多-Xmx),JVM将从操作系统请求更多内存。

但是,你知道你需要这么多记忆吗?内存消耗的主要驱动因素是你的应用而不是 Tomcat。带有一些servlet或JSP的简单webapp可以轻松地在不到32MB的堆中运行。您需要测量应用程序的性能/负载以确定最佳设置。

附注 - 设置JVM参数的首选方法是使用JAVA_OPTS中的setenv.sh设置,而不是catalina.sh。