【发布时间】:2019-06-04 00:43:52
【问题描述】:
我在 Internet 和 stackoverflow 上阅读了很多帖子,但我仍然无法增加 Tomcat 堆大小e。 可能我犯了一个我无法识别的错误。
按照guide 我做了这些步骤:
- 我在文件夹 {tomcat}\bin 中创建了文件 setenv.bat
- 在文件 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