我想在产品的内存消耗中发现不良趋势。我有一些想法:
- 用Activ垃圾收集日志在CI环境中执行集成测试
- 测试后的后过程GC日志在堆中找到峰值(例如, gc之后的最大堆)。我可能会使用一些时髦的脚本来解析和进行统计。
随着时间的推移记录这些数字,以查看长期趋势是否显示出需要进行分析的令人惊讶的变化。
以前有人做过类似的事情吗?这是一个完全愚蠢的主意吗?有没有高级工具?
很可能您不会从普通CI测试中找到任何有用的东西。我们正在运行类似生产的(井,合理)的负载测试,并且在24小时以上的GC活动非常有用。有些事情只有一周或更长时间才能看到。您可能会在短短几个小时内发现一些趋势,但是典型的CI测试可能太短了。
如果您想走该路线,则当然可以使用GC日志,但是使用JOLOKIA/JMX或使用JSTAT工具获取JVM的数据要容易得多。将其发送到InfluxDB/Graphite/其他,并用Grafana或其他东西将其绘制。能够比较不同时期的GC图并与应用程序报告的其他事件相关!
尝试以下答案。
建议使用spf4j。
我想启动微服务之类的东西,以确保它能够从提供的内存限制 非常快的烟雾测试开始。