Пример #1
0
def search_norm_xpercent_latency(arrival_rate, bandwidth, period, percentile,
                                 N):
    if (arrival_rate >= bandwidth):
        print "Unstable!"
        return -1

    budget = period * bandwidth
    (x_bd, y_bd) = get_MDDS1_from_BDDS1(arrival_rate, 1.0, budget, period, N)

    i = 0
    while (y_bd[i] < percentile):
        i = i + 1

    x = x_bd[i - 1] + (x_bd[i] - x_bd[i - 1]) * (percentile - y_bd[i - 1]) / (
        y_bd[i] - y_bd[i - 1])
    print "P=[%f] W=[%f], [%2d-th] percentile latency [%f]" % (
        period, bandwidth, int(100 * percentile), x)

    return x
Пример #2
0
# For paper 3.5x2.8 for PPT 5x4
figwidth = 3.5
figheight = 2.8
plt.figure(figsize=(figwidth, figheight))

# For paper: Enable
plt.subplots_adjust(left=0.18, top=0.95, bottom=0.18)

for i in range(0, 4):

    norm_lambda = arrival_rate * service_durs[i]
    norm_p = period / service_durs[i]
    norm_b = budget / service_durs[i]

    (x_bd, y_bd) = get_MDDS1_from_BDDS1(norm_lambda, 1.0, norm_b, norm_p, N)

    x_bd = x_bd * service_durs[i]

    x_bd = x_bd[0:int(x_lim * N)]
    y_bd = y_bd[0:int(x_lim * N)]

    plt.plot(x_bd,
             y_bd,
             linestyle=lstyles[i],
             color=colors[i],
             drawstyle='steps',
             clip_on=True,
             linewidth=2.0)

#====================== Draw Figure ======================
Пример #3
0
N = 20

x_lim = 20.0
y_lim = 1.0
xy_lim = (x_lim, y_lim)

# For paper 3.5x2.8 for PPT 5x4
figwidth  = 3.5
figheight = 2.8
plt.figure(figsize=(figwidth, figheight))

# For paper: Enable
plt.subplots_adjust(left=0.18,top=0.95, bottom=0.18)

for i in range(0, 4):
	(x_bd, y_bd) = get_MDDS1_from_BDDS1(arrival_rates[i], 1.0, budget, period, N)

	x_bd = x_bd[0 : int(x_lim * N)]
	y_bd = y_bd[0 : int(x_lim * N)]

	plt.plot(x_bd, y_bd, linestyle=lstyles[i], color=colors[i], drawstyle='steps', clip_on=False, linewidth=2.0)


#====================== Draw Figure ======================
#if (True == ISVARBANDWIDTH):
#	mytitle = "Numerical CDF: P=%.1f, %c=%.1f, %c=%.1f" % (period, u'\u03BB', arrival_rate, u'\u03BC', service_rate)
#else:
#	mytitle = "Numerical CDF: W=%2d%%, %c=%.1f, %c=%.1f" % (int(bandwidth * 100), u'\u03BB', arrival_rate, u'\u03BC', service_rate)

plt.xlabel('Normalized Response Time', fontsize = 12)
plt.ylabel('Proportion', fontsize = 12)
service_rate = 1.0
period = period_real / service_dur_real
budget = period * bandwidth

GEN_NEW_DATA = False

N = 60

runfile = 'redis_sort'

x_lim = 20.0
y_lim = 1.0
xy_lim = (x_lim, y_lim)

#================= M/D(DS)/1 Theoretical ==================
(x_bd, y_bd) = get_MDDS1_from_BDDS1(arrival_rate, 1.0, budget, period, N)
#
x_bd = x_bd[0:int(x_lim * N)]
y_bd = y_bd[0:int(x_lim * N)]

#================= M/D(DS)/1 Theoretical ==================
# Normalization
service_dur_worst = 10.0
arrival_rate_2 = arrival_rate_real * service_dur_worst
period_2 = period_real / service_dur_worst
budget_2 = period_2 * bandwidth
(x_bd2, y_bd2) = get_MDDS1_from_BDDS1(arrival_rate_2, 1.0, budget_2, period_2,
                                      N)

x_bd2 = x_bd2[0:int(x_lim * N)] * service_dur_worst / service_dur_real
y_bd2 = y_bd2[0:int(x_lim * N)]