Ich habe die Informationen zum Gaussian Random Timer in der jmeter Bedienungsanleitung gelesen, aber es ist schwer zu verstehen. Irgendwelche haben eine Idee, die damit verbunden ist, erklären Sie bitte mit dem Beispiel, das in hohem Grade geschätzt wird. Vielen Dank im Voraus.
Der Gaußsche Zufallszeitgeber hat eine zufällige Abweichung (basierend auf der Gaußschen Kurvenverteilung) um den konstanten Verzögerungsversatz.
Zum Beispiel:
Die Verzögerung variiert zwischen 200 ms (300 - 100) und 400 ms (300 + 100) basierend auf der Gauß-Verteilung für etwa 68% der Fälle .
Ich werde versuchen, es mit einem der bereits geposteten Beispiele zu erklären:
Ungefähr 68% der Verzögerungen liegen zwischen [500, 1500] ms (= [1000 - 500, 1000 + 500] ms).
Nach dem Dokumente (Hervorhebung von mir):
Die Gesamtverzögerung ist die Summe aus dem Gaußschen verteilten Wert (mit Mittelwert 0,0 und Standardabweichung 1,0) mal dem von Ihnen angegebenen Abweichungswert und dem Offsetwert
Apache JMeter ruft Random.nextGaussian()
* range
um die Verzögerung zu berechnen. Wie erklärt in der Wikipedia , wird der Wert von nextGaussian()
zwischen [ -1,1] nur für etwa 68% der Fälle. In der Theorie könnte es einen beliebigen Wert haben (obwohl die Wahrscheinlichkeit, Werte außerhalb dieses Intervalls zu erhalten, sehr schnell mit der Entfernung zu diesem Wert abnimmt).
Als Beweis habe ich einen einfachen JMeter-Test geschrieben, der einen Thread mit einem Dummy-Sampler und einem Gaußschen Zufalls-Timer startet: 3000 ms konstante Verzögerung, 2000 ms Abweichung:
Um CPU-Ladeprobleme auszuschließen, habe ich einen zusätzlichen gleichzeitigen Thread mit einem anderen Dummy-Sampler und einem Constant Timer konfiguriert: 5000 ms:
Die Ergebnisse sind ziemlich aufschlussreich:
Nehmen wir zum Beispiel die Proben 10 und 12: 9h53'04.449" - 9h52'57.776" = 6.674"
, das ist eine Abweichung von 3.674"
im Gegensatz zu 2.000"
konfiguriert! Sie können auch überprüfen, ob der konstante Timer überhaupt nur um 1 ms abweicht.
Ich könnte eine sehr schöne Erklärung dieser Gaussian Timer in der Gmane jmeter Benutzerliste finden: Timer - Frage .
Gaussian Random Timer ist fast identisch mit Uniform Random Timer.
In Uniform Random Timer hat die Variation um konstanten Offset eine lineare Verteilung
Im Gaußschen Zufalls-Timer hat die Variation um den konstanten Offset eine Gaußsche Kurvenverteilung.
Konstante Verzögerung Offset (mu) = 300 ms, Abweichung (si) = 100 ms mu-si = 200, mu + si = 400, Es besteht eine Wahrscheinlichkeit von 68%, dass die Zeitlücke zwischen zwei Threads im Bereich von [200,400]
liegtmu-2 (si) = 100, mu + 2 (si) = 500, Es besteht eine Wahrscheinlichkeit von 95%, dass die Zeitlücke zwischen zwei Threads im Bereich von [100,500] liegt
mu-3 (si) = 0, mu + 3 (si) = 300, es bestehen 99,7% Chancen, dass die Zeitlücke zwischen zwei aufeinander folgenden Threads im Bereich von [0,600] liegt
Wenn du so weitermachst, wirst du 100% Wahrscheinlichkeit haben, dass die Zeitlücke zwischen zwei Threads 100% ist
Ich beschränke mich selbst auf drei Iterationen, weil mu-4 (si) einen negativen Wert ergibt und die verstrichene Zeit immer ein positiver Wert in diesem Universum ist.
Aber es wird sehr unrealistisch sein, sich auf den Gaußschen Timer zu verlassen, da wir einen konstanten Timer und einen konstanten Durchlauftimer ohne Standardabweichung (si) haben.
Ich hoffe, dass es hilft.
Tags und Links jmeter jmeter-plugins