top res比Xmx更大[重复]

问题描述 投票:2回答:1

ENV:jdk8 垃圾:g1

jvm paras:-Xms30G -Xmx30G -XX:MaxDirectMemorySize = 1G -XX:MetaspaceSize = 500m -XX:MaxMetaspaceSize = 1G

程序运行很长时间顶级命令通知Res是60G或更多。我想知道这个问题的原因。谁有过这样的问题?帮我

java jvm
1个回答
0
投票

-Xmx是最大堆大小。它不是最大的流程大小。您正在使用其他资源,如线程,套接字,GUI,直接内存,共享库,元空间,内存映射文件。

我会说;直接内存是最有可能的,特别是因为默认情况下它的最大大小与堆相同,但是@apangin指出你已经将最大值设置为1 GB。

我不知道找到使用多少直接内存的简单方法,但是在Oracle JVM上,您可以获得java.nio.Bits#reservedMemory,因为它具有当前分配的数量。

© www.soinside.com 2019 - 2024. All rights reserved.