【问题标题】:How to increase Tomcat Heap memory on windows如何在 Windows 上增加 Tomcat 堆内存
【发布时间】:2019-06-04 00:43:52
【问题描述】:

我在 Internet 和 stackoverflow 上阅读了很多帖子,但我仍然无法增加 Tomcat 堆大小e。 可能我犯了一个我无法识别的错误。

按照guide 我做了这些步骤:

  1. 我在文件夹 {tomcat}\bin 中创建了文件 setenv.bat
  2. 在文件 setenv.bat 中,我添加了字符串 set "JAVA_OPTS=%JAVA_OPTS% -Xms128m -Xmx1024m -XX:MaxPermSize=512m -server"

当我运行 Tomcat 并启动我的应用程序(例如 localhost:8080/appName)并尝试以这种方式了解堆信息时:

long maxHeapSize = Runtime.getRuntime().maxMemory();        
long freeHeapSize = Runtime.getRuntime().freeMemory();  
long totalHeapSize = Runtime.getRuntime().totalMemory();    
System.out.println("Max Heap Size = " + (maxHeapSize/1024/1024)+ " MB");    
System.out.println("Free Heap Size = " + (freeHeapSize/1024/1024)+ " MB");  
System.out.println("Total Heap Size = " + (totalHeapSize/1024/1024)+ " MB");        

我知道最大堆大小始终为 256 MB。 有人知道我的错误是什么吗?

【问题讨论】:

  • 嗨@JoãoRebelo 我已经阅读并关注了该帖子。它没有解决 mt 问题
  • Tomcat 使用“catalina.bat”(或)“catalina.sh”启动。在该启动文件上添加行。
  • 我不确定你的问题是什么。从对副本的答案中,您可能会发现 JVM 仅在当前堆大小不足以满足其需求时才向操作系统请求更多内存。当您将此标志设置为-Xms128m 时,您指定JVM 应以128 Mb 的堆开始,并在需要时根据使用标志-Xmx1024m 最多分配1024 Mb。您可能想尝试分配更多对象并将这些调用放在程序的不同部分。

标签: java tomcat heap-memory


【解决方案1】:

请看详情:

  1. 我用apache-tomcat-9.0.14-windows-x64.zip
  2. 一定使用权java version
  3. 编辑 catalina.bat 在 setlocal 后添加 set JAVA_OPTS=-Xms128m -Xmx1024m
  4. startup.bat启动Tomcat
  5. 检查JVM:启动jconsole,选择Tomcat,选择insecure
  6. XMS, XMX

如果要启动Tomcat9w.exe,需要install service

【讨论】:

  • 谢谢你,现在可以了。问题是我没有启动调用 catalina.bat 的 Tomcat,而是将 Tomcat 作为 Windows 服务启动。如果我启动 Tomcat 调用 catalina.bat,它既可以编辑 catalina.bat 也可以创建 setenv.bat。谢谢你:)
  • 不发图片链接,添加代码sn-ps
【解决方案2】:

请在 catalina.bat 文件中设置: Screen shot of catalina.bat file

【讨论】:

  • 嗨@Đức Trần Trung,我也尝试了你的解决方案,但它仍然不起作用。我可以通过打开程序 Tomcat9w.exe 来更改堆内存,但我无法通过编辑 catalina.bat 来做到这一点
  • 不用张贴文件的图片链接,可以在答案本身添加必要的文件内容
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-27
  • 2011-03-13
  • 2013-06-17
  • 2017-04-09
  • 2012-12-06
  • 1970-01-01
相关资源
最近更新 更多