Beispiel 2: Begrenzen des Queue-Überlaufs
Eine Software-Task produziert Messages und platziert diese in einer Queue - zu willkürlichen Zeiten, aber mit einer mittleren Ankunftszeit von M = 30 Millisekunden. Eine andere Software-Task holt die Messages aus der Queue ab und verarbeitet sie. Die Queue ist auf maximal 5 Messages begrenzt, andernfalls läuft sie über, siehe Abbildung 8. Was ist die höchste mittlere Message-Verarbeitungszeit, die die Queue-Overflow-Wahrscheinlichkeit auf unter ein Zehntausendstel Prozent begrenzt?
Wir verwenden die Formel zum Berechnen der Wahrscheinlichkeit, dass mindestens K Messages in der Queue sein werden:
K
P [ > K enqueued ] = (R)
und setzen P auf weniger als 0,0001%, wenn K = 6 oder mehr Messages für den Queue-Überlauf. Das ergibt:
6
P [ >6 enqueued ] = (R) < 0,000001
6 6 6 -6
Und da R = A / M und M=0,030 Sekunden, bekommen wir (R) = (A) / (0,030) < 1*(10)
Ergebnis: A < 1*(1/10)*0,030 = 0,003 Sekunden.
Demnach muss die mittlere Verarbeitungszeit der Task, die Messages verarbeitet, kleiner als 3 Millisekunden sein, wenn wir die Overflow-Verluste in unserer Queue mit einer Kapazität von 5 Messages auf unter 0,0001 Prozent begrenzen wollen.
Was wäre unter diesen Umständen die mittlere Queue-Länge?
Wir nehmen unsere bewährte Formel: Lavg = R / (1-R).
Berechnet ergibt das: R= 0,003 / 0,030 = 0,1.
Weiter: Lavg = 0,1 / 0,9 = 0,11 Messages.
In der Queue ist durchschnittlich also viel weniger als eine Message! Die meiste Kapazität der 5-Message-Queue wird kaum genutzt, aber dennoch ist sie vorzusehen, damit der Queue-Überlauf auf unter 0,0001 Prozent begrenzt wird.
(ID:44833511)