我已经在jmeter用户手册中阅读过高斯随机定时器信息,但很难理解。任何人都有与此相关的想法请以高度赞赏的例子解释。提前谢谢。
答案 0 :(得分:22)
高斯随机定时器在恒定延迟偏移周围具有随机偏差(基于高斯曲线分布)。
例如:
对于大约68%的情况,延迟将在200 ms(300 - 100)和400 ms(300 + 100)之间变化,基于高斯分布。
答案 1 :(得分:7)
我将尝试使用已发布的一个示例来解释它:
大约 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偏差:
为了排除cpu加载问题,我已经使用另一个虚拟采样器和一个Constant Timer配置了一个额外的并发线程:5000 ms:
结果非常有启发性:
例如,样本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)。
希望它有所帮助。