监视连续集成中的Java堆使用情况

时间:2017-11-21 12:49:07

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

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

  1. 使用激活垃圾回收日志在CI环境中执行集成测试
  2. 测试后的后处理GC日志,以查找堆使用率的峰值(例如 GC后的最大堆)。我可能会使用一些Groovy脚本来解析和进行统计。
  3. 随着时间的推移记录这些数字,看看长期趋势是否显示需要详细分析的惊人变化。

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

Try this answer

建议使用spf4j

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