当前位置: 首页 > 知识库问答 >
问题:

top res比Xmx大[重复]

鲜于德泽
2023-03-14

jvm para:-xms30g-xmx30g-xx:maxDirectMemorysize=1g-xx:metaspacesize=500m-xx:maxmetaspacesize=1g

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

共有1个答案

轩辕季同
2023-03-14

-xmx是最大堆大小。它不是最大进程大小。您正在使用其他资源,如线程、套接字、GUI、直接内存、共享库、元数据库、内存映射文件。

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

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

 类似资料:
  • 问题内容: 现在,我在ini文件中对这些设置是: -Xms768M -Xmx1024M 当将它们设置得更高时,eclipse就不会再开始了……有没有办法增加这些值而又不会使eclipse崩溃? 问题答案: 最大值不取决于Eclipse,而是取决于您的OS(显然取决于可用的物理内存)。 您可能想看一下这个问题:Windows中每个Java进程的最大内存量?

  • 我试图在docker容器内JavaSpring Boot应用程序中寻找内存泄漏。 应用程序的堆大小如下所示: 本机内存差异如下所示: 本机内存跟踪: 总计:保留=8295301KB 1728KB,已提交=2794537KB 470172KB 获取堆转储后: 堆泄漏可疑报告非常小-45MB: 问题是:为什么Java堆提交=2245120KB-几乎2GB?它不符合Xmx512m,也不符合jmap的堆转

  • 众所周知,可以使用来限制Java堆大小,其中是数据量单位,如千兆字节、兆字节等。我知道表示128兆字节(=128*1024*1024字节)。 但是,使用(100*1000*1000字节)也可以使用十进制单位,比如兆字节,这是真的吗? 那么有没有可能通过使用类似这样的小写单位后缀来使用这些十进制单位,而不是呢?

  • 我有一个非常简单的Web服务器类(基于JavaSE的类)。 当我使用此命令启动编译后的类以限制内存使用时:

  • 我真的对此感到困惑。 Xmx根据java文档,是允许的最大堆大小。 Xms是所需的最小java堆大小,在JVM启动时分配。 在32位JVM(4GB ram)上,java-xmx1536m HelloWorld会出现无法分配足够内存的错误。 在64位JVM(4GB ram)上,java-xmx20g HelloWorld可以正常工作。但我甚至没有分配那么多的虚拟或物理内存。 因此,我得出结论:Jav

  • 问题内容: 我期望Runtime.maxMemory()完全返回-Xmx,但是它返回一个较低的值。那么它返回什么呢? 问题答案: -Xmx标志的解释取决于VM。包括HotSpot在内的某些VM会对该选项的有效值施加下限。CCC提案不应以这种方式提及-Xmx标志。 参考