gpt4 book ai didi

java - 为我的所有应用程序增加 Tomcat 中的堆大小

转载 作者:行者123 更新时间:2023-11-28 23:22:55 24 4
gpt4 key购买 nike

我在 docker 中使用 tomcat:8。这是一些重要的设置(默认)。

$ java -XX:+PrintFlagsFinal -version | grep -iE 'HeapSize|PermSize|ThreadStackSize'
Picked up JAVA_TOOL_OPTIONS: -Duser.home=/home/jboss -Duser.name=jboss
intx CompilerThreadStackSize = 0 {pd product}
uintx ErgoHeapSizeLimit = 0 {product}
uintx HeapSizePerGCThread = 87241520 {product}
uintx InitialHeapSize := 33554432 {product}
uintx LargePageHeapSizeThreshold = 134217728 {product}
uintx MaxHeapSize := 524288000 {product}
intx ThreadStackSize = 1024 {pd product}
intx VMThreadStackSize = 1024 {pd product}

现在我需要增加最大堆大小,因为我遇到了一些 outofmemory 问题。 (应用程序非常繁重)。

在内存不足之前,它会警告我即将达到最大堆大小并且 tomcat 将outofmemory。几分钟后它崩溃了。

在我的 tomcat 中部署了几个 .war。这些应用程序位于 /deployments/xxx.war 中。

ls 显示我

app1_0.1                                               
app1_0.1.war
app2_0.1
app2_0.1.war
...

现在我的问题如下。我是否必须分别增加每个 .war 文件或同时增加整个 tomcat 的堆大小。因为我没有找到一个命令来检查一个 Java 应用程序的堆大小,但是当我想增加堆大小时,我似乎只找到这样的命令:java -Xms16m -Xmx64m ClassName(等等具体应用)。

当我只是执行它而不指定应用程序时:

$ java -Xms16m -Xmx64m
Picked up JAVA_TOOL_OPTIONS: -Duser.home=/home/jboss -Duser.name=jboss
Usage: java [-options] class [args...]
(to execute a class)
or java [-options] -jar jarfile [args...]
(to execute a jar file)
where options include:
-d32 use a 32-bit data model if available
-d64 use a 64-bit data model if available
-server to select the "server" VM
The default VM is server,
because you are running on a server-class machine.
...

最佳答案

查看有关 OutOfMemory 解决方案的相关 SE 问题错误

java.lang.OutOfMemoryError: Java heap space

MaxPermSize JDK 1.8 中删除了标志。它被替换为 Metaspace .

JDK8:元空间

在 JDK 8 中,类元数据现在存储在 native 堆中,这个空间称为 Metaspace .为 Metaspace 添加了一些新标志在 JDK 8 中:

-XX:MetaspaceSize=<NNN>为类元数据分配的初始空间量(初始高水位线)在哪里(以字节为单位)可能会导致垃圾收集卸载类。

-XX:MaxMetaspaceSize=<NNN>其中是为类元数据分配的最大空间量(以字节为单位)。

看看甲骨文blog

使用 -d64 VM 参数中的选项,因为您使用的是 64 位操作系统。

您正在设置的 VM 参数对于 tomact 实例是全局的。

关于java - 为我的所有应用程序增加 Tomcat 中的堆大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40839772/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com