【问题标题】:Monitor Java heap usage in continous integration监控持续集成中的 Java 堆使用情况
【发布时间】:2018-05-04 22:37:52
【问题描述】:

我想发现我的产品内存消耗的不良趋势。我有这样的想法:

  1. 使用活动垃圾收集日志在 CI 环境中执行集成测试
  2. 在测试后对 GC 日志进行后处理,以发现堆使用量的峰值(例如,最大堆 GC)。我可能会使用一些 Groovy 脚本来解析和统计数据。

随着时间的推移记录这些数字,看看长期趋势是否显示出需要详细分析的惊人变化。

以前有人做过类似的事情吗?这是一个完全愚蠢的想法吗?有没有先进的工具?

【问题讨论】:

  • 集成测试不太可能代表您系统的实际使用模式,因此您不会真正测量相关事物。

标签: java performance build continuous-integration performance-testing


【解决方案1】:

您很可能不会从正常的 CI 测试中找到任何有用的东西。我们正在运行类似生产(好吧,合理)的负载测试,并且 24 小时以上的 gc 活动非常有用。有些东西只有在一周或更长时间后才能看到。您可能会在短短几个小时内发现一些趋势,但典型的 CI 测试可能太短了。

如果你想走这条路,当然可以使用 gc 日志,但是从 JVM 获取数据要容易得多,无论是使用 Jolokia/JMX 还是使用 jstat 工具。将它发送到 InfluxDB/Graphite/other 并用 Grafana 或其他东西绘制它。能够比较不同时期的 gc 图并与应用程序报告的其他事件相关联非常棒!

【讨论】:

    【解决方案2】:

    Try this answer.

    建议使用spf4j

    我想启动微服务,以确保它能够以提供的内存限制 + 非常快速的冒烟测试开始。

    【讨论】:

      猜你喜欢
      • 2016-07-18
      • 2012-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 2013-10-15
      • 1970-01-01
      相关资源
      最近更新 更多