我开始使用以例如JMeter
,并注意到班级数量逐渐上升,然后迅速下降,然后又逐渐上升。
Jconsole
这是JMeter的典型行为吗?也许一般来说JVM?还是应该涉及特定的插件代码?我担心要减少运行GC的类的数量,这可能会影响生成负载的连续性。我现在无法通过网络搜索找到答案。
添加:测试计划包括制作,使用HTTP request samplers, JSON Assertions逐步增加负载+随机分配。
我会说这是由于concurrency thread group,因为其他提到的测试元素不太可能导致已加载类的数量增加并触发卸载。
这是some randomization
,如果/当程序不再引用它们时,可以卸载这些类。
您可以将以下normal behavior of the JVM添加到JMeter启动命令中:
JVM options
因此,您将能够在给定的时间查看正在加载/卸载的确切类。
[不幸的是,如果不查看测试计划和JVM参数,就无法提供更多信息,只是确保您遵循-XX:+TraceClassLoading -XX:+TraceClassUnloading
文章中的建议,以确保您的测试不会因JMeter的9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure而崩溃提供足够的自由来射击自己的腿。