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

尽管使用了UseCMSInitiatingOccupancyOnly标志,但CMS-Initiate-Mark仍在增加,并导致并发模式失败

孟均
2023-03-14

我能请你帮忙吗?为什么它在增加?

标志:

-xms28g-xmx28g-xx:permsize=512m-xx:maxpermsize=512m-xs512k-xx:newsize=8g-xx:maxnewsize=8g-xx:maxnewsize=8g-xx:survivorratio=6-xx:+alwayspretouch-verbose:gc-xx:+printgcdetails-xx:+printgctimestamps-xx:+useconcmarksweepgc-xx:+useparnewgc

GC日志

08/25-18:00:48[4]<48574>145285.817:[CMS-concurrent-abortable-preclean-start]

08/25-18:00:51[4]<48574>145286.877:[GC(分配失败)145286.877:[ParNew(升级失败):6332558K->6339431K(7340032K),1.7870705秒]145288.664:[CMS145288.749:[CMS-Concurrent-Abortable-Preclean:1.138/2.932秒][times:user=7.11 sys=0.04,real=2.93秒]

08/25-18:02:14[4]<48574>(并发模式故障):20937785K->20947677K(20971520K),82.4977633秒]27269752K->20947677K(28311552K),[元空间:108472K->108472K(1148928K)],84.2851262秒][时间:user=84.51 sys=0.01,real=84.29秒]

旧历史记录:

08/25-18:00:34[4]<48574>145271.408:[GC(CMS初始标记)[1 CMS初始标记:2093339K(20971520K)]21000667K(28311552K),0.0057867秒][times:user=0.04 SYS=0.00,real=0.01秒]

08/25-18:02:31[4]<48574>145388.639:[GC(CMS初始标记)[1 CMS初始标记:20947677K(20971520K)]21005038K(28311552K),0.0044022秒][times:user=0.03 SYS=0.00,real=0.01秒]

共有1个答案

祝叶五
2023-03-14

(并发模式故障):20937785K->20947677K(20971520K),82.4977633秒]27269752K->20947677K(28311552K)

您有28GIB的总堆,其中8GIB是新的一代,这就为老一代留下了20GIB。并发模式失败(本质上是一个完整的GC)后,堆上只剩下略少于20GIB的部分。这意味着,如果所有内容都得到提升,则live object集在老一代中只剩下不到1GB的备用容量。

或者是您的堆太小了--或者是年轻一代太大了--使您的工作负载无法满足IHOP要求的40%的呼吸空间,或者是您的应用程序正在泄漏。

 类似资料:
  • 我尝试使用线程方法对集合进行排序,其中方法分别调用比较器类 每个线程方法看起来像这样: ID Compartator类如下: employeeList是一个对象列表,具有名称、id、薪水和职位属性: 虽然我添加了运行前同步方法,但编辑列表仍然会产生ConcurrentModificationException 我试图使用名称,职位和ID一次使用线程排序。

  • 问题内容: 我正在尝试将IBM的CPLEX库与我的Java应用程序集成。现在,我只是试图创建一个IloCplex对象。我添加了Cplex.jar,它可以很好地编译,但是当我运行它时: Cplex在抛出异常之前打印此消息: 我通过这个参数给JVM: 。这是cplex124.dll的位置。我看过的每个教程都给出了相同的步骤,我觉得自己很好地遵循了它们。 我究竟做错了什么?? 问题答案: 我在互连网上发

  • 问题内容: 我不明白…是我还是这是节点中的错误? 可以按预期进行: 这发出了警告: 我懂了 问题答案: 使用与承诺回报新希望(这就是所谓的链接)。因此,当您执行以下操作时: 您的最初承诺在哪里,您将在第1行上创建一个新的承诺(现在不再存在。我们称它为 )。因此,即使您使用with ,也不会处理上的拒绝,这解释了您在控制台上看到的消息。 为了避免出现此消息,您应该在第1行的新承诺中添加a

  • 我有一个类,它具有应该被注入的字段。 并且有接口仅由类实现,具有的。 当我尝试启动SpringBootApplication时,会抛出。 为什么接口注册为bean的一个,即使它没有注释,也没有包含任何bean配置? 我发现,如果我不使用作为,一切都很好。 有什么想法吗?

  • 问题内容: 我正在尝试将接口绑定到其实现,如从配置文件中读取的那样,以便可以将其提供给IoC容器。这大致是我想做的事情: 是否有可能获得? 问题答案: 您需要将类显式传递给构造函数(并自行存储)。

  • 我注意到Docker似乎在使用大量磁盘空间。我可以看到目录。docker/machine/machines/default是27.4GB 我最近清理了我没有使用的所有图像和容器。现在,当我运行时,我看到没有图像正在运行。 我还可以看到我有2个容器可用。 然后我可以看到我有3个图像。 它们怎么会占用近30GB的空间?