难以理解高斯随机定时器?

时间:2013-07-12 13:35:24

标签: jmeter jmeter-plugins

我已经在jmeter用户手册中阅读过高斯随机定时器信息,但很难理解。任何人都有与此相关的想法请以高度赞赏的例子解释。提前谢谢。

4 个答案:

答案 0 :(得分:22)

高斯随机定时器在恒定延迟偏移周围具有随机偏差(基于高斯曲线分布)。

例如:

  • 偏差:100毫秒
  • 恒定延迟偏移:300毫秒

对于大约68%的情况,延迟将在200 ms(300 - 100)和400 ms(300 + 100)之间变化,基于高斯分布

答案 1 :(得分:7)

我将尝试使用已发布的一个示例来解释它:

  • 恒定延迟偏移:1000 ms
  • 偏差:500毫秒

大约 68%的延迟将介于[500,1500] ms (= [1000 - 500,1000 + 500] ms)之间。

根据docs(强调我的):

  

总延迟是高斯分布值(平均值为0.0,标准差为1.0)乘以指定的偏差值和偏移值

的总和

Apache JMeter调用Random.nextGaussian() * range来计算延迟。正如in the Wikipedia所解释的那样,nextGaussian()的值仅在[-1,1]之间,仅占大约68%的案例。从理论上讲,它可以有任何价值(虽然获得超出此区间的值的概率随着距离的增加而迅速下降)。

作为证据,我编写了一个简单的JMeter测试,它使用虚拟采样器和高斯随机定时器启动一个线程:3000 ms恒定延迟,2000 ms偏差:

Gaussian Timer Configuration

为了排除cpu加载问题,我已经使用另一个虚拟采样器和一个Constant Timer配置了一个额外的并发线程:5000 ms:

Constant Timer

结果非常有启发性:

JMeter test results

例如,样本10和12:9h53'04.449" - 9h52'57.776" = 6.674",与3.674"的偏差相比,2.000"的偏差!您还可以验证常量计时器是否仅偏离约1毫秒。

我可以在Gmane jmeter用户列表中找到关于这些高斯计时器的非常好的解释:Timer Question

答案 2 :(得分:3)

高斯随机定时器与均匀随机定时器几乎相同。

  • 在均匀随机定时器中,常数偏移周围的变化具有线性分布

  • 在高斯随机定时器中,恒定偏移周围的变化具有高斯曲线分布。

答案 3 :(得分:2)

恒定延迟偏移(μ)= 300 ms,偏差(si)= 100 ms mu-si = 200,mu + si = 400,两个线程之间的时间间隔有68%的可能性在[200,400]范围内

mu-2(si)= 100,mu + 2(si)= 500,两个线程之间有95%的时间间隔在[100,500]范围内

mu-3(si)= 0,mu + 3(si)= 300,两个连续线程之间的时间间隔有99.7%的可能性在[0,600]范围内

当你继续这样的时候,你会得到两个线程之间的时间间隔为100%的概率为100%

我将自己限制为3次迭代,因为mu-4(si)产生负值,并且经过的时间在此宇宙中始终是正值。

但依赖高斯计时器是非常不现实的,因为我们有恒定的计时器和常数通过计时器,没有标准偏差(si)。

希望它有所帮助。