Windows服务器中Tomcat instace的默认内存

时间:2017-04-06 09:22:58

标签: heap-memory tomcat8 permgen

我想为我的Tomcat实例增加permgen内存和堆内存。 我试过创建setenv.bat文件。 现在我不确定它是否反映出来。

您能否告诉我如何知道Tomcat实例的现有已分配Heap和PerGen内存以及如何交叉检查内存是否增加。

我已经尝试过在url中提到的这个方法,但这是针对Windows中的JAVA而不是特定于任何java实例的 https://www.mkyong.com/java/find-out-your-java-heap-memory-size/

1 个答案:

答案 0 :(得分:0)

解决方案1:检查Windows流程参数

您可以在任务管理器中看到它,方法是启用命令行列并检查java.exe是否确实以-XX:MaxPermSize参数启动。

但是,任务管理器并不总是显示完整的命令行。它会在一定数量的字符后切断。您可以使用Process Explorer查看完整的命令行(只需将鼠标悬停在java.exe进程上)。

解决方案2:签入代码:

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryPoolMXBean;
import java.lang.management.MemoryType;
import java.lang.management.MemoryUsage;

for (MemoryPoolMXBean mpBean : ManagementFactory.getMemoryPoolMXBeans()) {
    System.out.printf(
            "Type: %s, Name: %s: %s\n",
            mpBean.getType().toString(), mpBean.getName(), mpBean.getUsage()
    );
}

另见How is the java memory pool divided