Ich versuche, Funktionstests eines Servers mit einer realistischen Häufigkeitsverteilung von Anfragen zu automatisieren. (Art von Lasttests, eine Art Simulation)Wie erzeuge ich ein Histogramm für eine gegebene Wahrscheinlichkeitsverteilung (für den Funktionstest eines Servers)?
IIIIIIVV die Weibull Verteilung, wie es „Art“ entspricht die Verteilung ich beobachtet habe (Rampen schnell, fällt schnell ab, aber nicht sofort)
ich benutze diese Verteilung die Anzahl der Anfragen zu generieren, die jeden Tag zwischen einem bestimmten Start- und Enddatum
gesendet werden sollenich zusammen diese Art von Arbeiten einem Algorithmus in Python gehackt habe, aber es fühlt sich kludgy:
how_many_days = (end_date - start_date).days
freqs = defaultdict(int)
for x in xrange(how_many_responses):
freqs[int(how_many_days * weibullvariate(0.5, 2))] += 1
timeline = []
day = start_date
for i,freq in sorted(freqs.iteritems()):
timeline.append((day, freq))
day += timedelta(days=1)
return timeline
Welche besseren Möglichkeiten gibt es, dies zu tun?
Dieser Algorithmus gibt immer die erwartete Anzahl der Antworten zurück, passt aber normalerweise nicht genau zwischen Anfangs- und Enddatum. Ich bin mir nicht sicher, ob dies möglich ist, wenn ich nicht manuell mit den Frequenzen herumhaue. –
Es ist nicht garantiert, dass sie zwischen Start- und Enddatum passen, da Sie eine Wahrscheinlichkeitsverteilung mit unendlicher Unterstützung verwenden. Solange Sie die aus der Distribution zurückgegebene Zufallszahl unverändert als Schlüssel verwenden, haben Sie dieses Problem. – Kai