环境:jdk8
垃圾: g1
jvm paras:-Xms30G -Xmx30G -XX:MaxDirectMemorySize=1G -XX:MetaspaceSize=500m -XX:MaxMetaspaceSize=1G
程序长时间运行top命令,注意Res是60G或更多。我想知道这个问题的原因。谁有过这样的问题?帮帮我
发布于 2018-09-19 15:58:48
-Xmx是最大堆大小。它不是最大进程大小。您正在使用其他资源,如线程、套接字、GUI、直接内存、共享库、元空间、内存映射文件。
我会说;Direct memory是最有可能的,特别是因为它的最大大小与默认情况下堆的大小相同,但是@apangin指出你已经将最大值设置为1 GB。
我不知道有什么简单的方法可以知道直接使用了多少内存,但是在Oracle JVM上,您可以获得java.nio.Bits#reservedMemory,因为它具有当前分配的内存量。
https://stackoverflow.com/questions/52400789
复制相似问题