【发布时间】:2018-04-04 10:10:09
【问题描述】:
我必须更改哪些设置才能在 Oracle JDK for Java 8 上允许 Tomcat 8.5 更多内存(在 4 gig 的范围内)?
这在here 之前已被问到。但这被(错误地)标记为this 的副本。 Questions and their Answers 的上下文是老一代的 Tomcat(版本 7,与当代 8.5)和老一代的 Java(Java 6 和 Java 7 与当代 Java 8)。所以所有的讨论都围绕在现代 Java 中不再存在的 PermGen 上。
➠ 使用 Oracle 为 macOS 等提供的 Java 实现在 Java 8 Update 151 上为 Tomcat 8.5.x 提供更多内存的现代设置是什么?
如果未指定,Tomcat 使用的最小和最大内存是多少?
从各种来源(例如此RUNNING.txt 文档)中收集一些信息,我在Tomcat bin 文件夹中创建了一个setenv.sh 文件,其中包含以下文本:
CATALINA_OPTS="-Xms4096m -Xmx4096m"
我预计这会立即占用 4 gigs 的内存,但可惜,没有。在 Mac OS X 上,我看到 java 进程的虚拟内存为 1.87 GB,而实际内存为 1.39 GB。
所以我不确定是什么控制了 Tomcat 8.5.23 的最小/最大内存使用量。
【问题讨论】:
-
使用
-Xmx4196m标志没有帮助? -
@nullpointer 请参阅编辑,底部部分解释使用该 X 标志可能无法完成工作。
-
我想知道我是否应该在 Server Fault Stack Exchange 上而不是在 Stack Overflow 上发布这个问题。
-
只要 setens.sh 完全运行,只要 Jvm 重新启动,内存就会被提升。确保此文件在启动时运行(同时检查权限)并使用 jvisualvm 或 jmc(可在
jdk/bin目录中找到)查看最大内存量。 -
也许 export 变量,例如
export CATALINA_OPTS="-Xms4096m -Xmx4096m"
标签: java oracle tomcat memory java-8