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

选择optthru的GC策略还是gencon?IBMwebSphere 7

闻人宝
2023-03-14

我有4 GB的堆大小分配给JVM。

为什么我应该为短期对象选择genconn GC策略。据我所知,genconn会将堆分成两部分(nursery和tenured ),这将增加应用程序的响应时间,但不会增加吞吐量,因为我有足够的堆大小用于我的应用程序。但是,如果我只关心吞吐量,我是否应该不使用optthruput策略,以便我有更少的GC调用。

我只能想到 genconn 的一个优点是避免磁盘碎片化。对于上述情况,genconn 还有其他优点吗?

共有3个答案

施文彬
2023-03-14

我在 IBM Labs 担任 Java Service Engg。这两种政策都有自己的权衡。选择策略基于应用程序要求。

选择:

当需要吞吐量时,可以考虑此策略。

Optthruput如何工作??

JVM允许对象连续分配,直到达到阈值ie(

Gencon:这项政策是为了减少暂停时间。

Gencon政策如何运作?

Java堆分为托儿所和帐篷。在苗圃区完成初始分配。一旦填充了托儿所区域,就会发生清除GC(托儿所区域上部分GC)。这将把长寿命的对象移动到保留区,而将短寿命的对象保留在托儿所。一旦nursery和tenure空间填满,系统GC就开始清除死对象。

如果没有正确设置托儿所空间,那么经常会发生清除gc,这会降低系统的性能。过多的GC总是会导致系统的html" target="_blank">性能受到影响。

希望这些信息可以帮助你选择政策。

赵光赫
2023-03-14

最好的方法是实际启用verBosegc并测试您的应用程序。没有一般规则,也没有策略是所有应用程序的最佳策略。根据我的经验,通常gencon,如果调整正确,表现更好。使用optthruit,尤其是在使用更大的堆大小时,当GC启动时,您可能会有相当长的暂停。这些长暂停可能会导致线程池使用高峰(因为应用程序线程被冻结),在极端情况下,可能会导致服务器崩溃。

通过调整gencon,大多数集合应该只出现在托儿所中,这非常快。你应该很少或没有gc终身。通常,同一个应用程序可以在gencon中使用比optthruput小得多的堆

正如我所说,最好是进行一些压力测试和比较。你有非常好的免费工具垃圾收集和内存可视化器,这是另一个非常有用的工具的插件,对任何处理WebSphere的人来说都是IBM支持助手。

它将允许您导入verBoseGC日志,显示不同的图表(如暂停时间、gc周期等)。它将允许您比较您的gc行为并给出一些如何调整它的一般建议。

司浩壤
2023-03-14

我不确定我是否迟到了,没有在你的问题中添加一些评论,但无论如何我都会这样做。正如您已经知道optthruput和gencon之间的区别一样,我将介绍这些GC策略的以下方面:

堆内存使用

如果应用程序的流量很大,那么在使用optthruput GC策略时可能会消耗大量内存,因为JVM会一直分配内存,直到超过阈值,从而导致垃圾收集周期运行。

相比之下,使用 gencon GC 策略,JVM 首先在托儿所堆空间中分配内存,并执行小的 GC 周期以从内存中删除未使用的对象。

根据我的经验,gencon 的整体堆使用量可以减少 20-30%。

暂停时间

optthruit GC策略执行“停止世界垃圾回收机制”,它可能非常昂贵,并可能导致更长的暂停时间,从而导致会话或请求超时。使用gencon GC策略,您不太可能获得高暂停时间,因为大多数垃圾回收机制都是在运行完整的GC之前执行的。gencon的唯一缺点是它可能会遇到碎片问题,但是如果您的应用程序分配了大量的短期对象,那么您最好使用gencon。

如果你决定使用gencon,那么请考虑先使用optthruit策略获取一些GC详细信息。您可以轻松设置Web球体以在native_stderr.log文件中吐出GC日志。您可以使用GCMV eclipse插件将GC日志提取到漂亮的图表和统计数据中。

假设即使在上面的描述之后,如果你不喜欢gencon,那么至少考虑使用optavgp的GC策略。它真的可以帮助你避免大的暂停时间。

希望这有帮助!

 类似资料:
  • 早在使用 Docker 之前就听说与其前辈 Vagrant 之前的竞争与替代,但是一直没能够 真正认识到两者之间的区别和优缺点,这次腾出时间使用 Vagrant 终于对它们之间的优缺点 有了更深的认识。 埋头苦干一直不是我的风格,所以在比较 Vagrant 安装、下载期间细细阅读了多篇相关文章, 其中当然少不了 Vagrant 和 Docker 作者在 StackOverflow 上的亲自解惑(中

  • 本文向大家介绍常用 GC 调优策略有哪些?相关面试题,主要包含被问及常用 GC 调优策略有哪些?时的应答技巧和注意事项,需要的朋友参考一下 GC 调优原则; GC 调优目的; GC 调优策略; GC 调优原则 在调优之前,我们需要记住下面的原则: 多数的 Java 应用不需要在服务器上进行 GC 优化; 多数导致 GC 问题的 Java 应用,都不是因为我们参数设置错误,而是代码问题; 在应用上线

  • 问题内容: 我正在用PHP开始一个新项目,很想从其他开发人员那里获得一些有关他们首选的PHP部署策略的反馈。我想稍微自动化一些事情,以便一旦提交更改,便可以将它们快速迁移到开发或生产服务器。 我有使用Capistrano和Ruby进行部署以及一些基本的shell脚本的经验。 在我独自潜水之前,很高兴听到其他人在他们的项目中是如何做到这一点的。 更多的信息 当前,开发人员致力于站点的本地安装,并将更

  • 本文向大家介绍如何选择是使用webpack还是rollup?相关面试题,主要包含被问及如何选择是使用webpack还是rollup?时的应答技巧和注意事项,需要的朋友参考一下 如何选择是使用webpack还是rollup? #2073 #2082

  • 这是选择排序吗?我认为这是泡泡排序,因为我使用的是(点)compareto。我在互联网上看不同的来源,所以我可以做一个。这是密码。

  • 本文向大家介绍请问GC是什么? 还有为什么要有GC?相关面试题,主要包含被问及请问GC是什么? 还有为什么要有GC?时的应答技巧和注意事项,需要的朋友参考一下 考察点:回收 GC是垃圾收集的意思(Gabage Collection),内存处理是编程人员容易出现问题的地方,忘记或者错误的内存回收会导致程序或系统的不稳定甚至崩溃,Java提供的GC功能可以自动监测对象是否超过作用域从而达到自动回收内存