Skip to content
Snippets Groups Projects
Commit feff4d5c authored by Peter Cai's avatar Peter Cai
Browse files

Merge qps_vs_conn and llc_misses

parent 09d6f197
No related branches found
No related tags found
No related merge requests found
import matplotlib.pyplot as plt
from memcached_conn_scan import collect_data
import os
from config import markers, colors
experiments = [
"memcached_conn_scan.5.15.79-peter.t1", # vanilla
"memcached_conn_scan.5.15.79-peter.kernel_polling.t1", # kernel polling
"memcached_conn_scan.5.4.0-136-generic.fstack.t1", # fstack
]
labels = [
"vanilla",
"kernel polling (patched)",
"fstack",
]
def plot():
data = collect_data(experiments)
plt.cla()
for i in range(len(experiments)):
exp = experiments[i]
label = labels[i]
plt.errorbar(data[exp][0], data[exp][3], yerr=data[exp][4], capsize = 4, label = label, marker = markers[label], color = colors[label])
plt.xlabel('Connections (per client w/ 56 clients)')
plt.ylabel('LLC misses per request')
plt.legend()
if os.getenv('SAVE_FIGURE') != 'true':
plt.rcParams.update({'font.size': 16})
plt.show()
else:
plt.savefig('../data/figs/memcached_conn_scan.llc_misses.t1.png', dpi = 192)
plot()
import matplotlib.pyplot as plt import matplotlib.pyplot as plt
from matplotlib.legend_handler import HandlerTuple
from memcached_conn_scan import collect_data from memcached_conn_scan import collect_data
from config import markers, colors from config import markers, colors, patterns
import os import os
experiments_t1 = [ experiments_t1 = [
...@@ -28,16 +29,27 @@ def plot(threads): ...@@ -28,16 +29,27 @@ def plot(threads):
data = collect_data(experiments) data = collect_data(experiments)
plt.cla() plt.cla()
fig, ax1 = plt.subplots()
ax2 = ax1.twinx()
p = []
for i in range(len(experiments)): for i in range(len(experiments)):
exp = experiments[i] exp = experiments[i]
label = labels[i] label = labels[i]
plt.errorbar(data[exp][0], [data[exp][1][j] / 1000 for j in range(len(data[exp][1]))], yerr = [data[exp][2][j] / 1000 for j in range(len(data[exp][2]))], capsize = 4, label = label, marker = markers[label], color = colors[label]) p1 = ax1.errorbar(data[exp][0], [data[exp][1][j] / 1000 for j in range(len(data[exp][1]))], yerr = [data[exp][2][j] / 1000 for j in range(len(data[exp][2]))], capsize = 4, label = label, marker = markers[label], color = colors[label])
offset = (3 * i + 1.5) - 3 * len(experiments) / 2
p2 = ax2.bar([data[exp][0][j] + offset for j in range(len(data[exp][0]))], data[exp][3], 3, yerr = data[exp][4], capsize = 4, label = label, edgecolor = colors[label], hatch = patterns[label], fill = False)
p.append((p1, p2))
plt.xlabel('Connections (per client w/ 56 clients)') plt.xlabel('Connections (per client w/ 56 clients)')
plt.ylabel('QPS (x1000)') ax1.set_ylabel('QPS (x1000)')
plt.ylim(ymin = 0) ax1.set_ylim(ymin = 0)
ax2.set_ylabel('LLC misses per query')
ax2.set_ylim(ymin = 0)
plt.legend() plt.legend(p, labels, handler_map={tuple: HandlerTuple(ndivide=None)}, loc = 'center left', handleheight = 2, handlelength = 4)
if os.getenv('SAVE_FIGURE') != 'true': if os.getenv('SAVE_FIGURE') != 'true':
plt.rcParams.update({'font.size': 16}) plt.rcParams.update({'font.size': 16})
plt.show() plt.show()
...@@ -45,4 +57,4 @@ def plot(threads): ...@@ -45,4 +57,4 @@ def plot(threads):
plt.savefig('../data/figs/memcached_conn_scan.t%d.png' % (threads,), dpi = 192) plt.savefig('../data/figs/memcached_conn_scan.t%d.png' % (threads,), dpi = 192)
plot(1) plot(1)
plot(8) #plot(8)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment