Skip to content
Snippets Groups Projects
memcached_qps_vs_conn.py 1.39 KiB
Newer Older
import matplotlib.pyplot as plt
from memcached_conn_scan import collect_data
from config import markers, colors
import os

experiments_t1 = [
    "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
]

experiments_t8 = [
    "memcached_conn_scan.5.15.79-peter.t8", # vanilla
    "memcached_conn_scan.5.15.79-peter.kernel_polling.t8", # kernel polling
]

labels = [
    "vanilla",
    "kernel polling (patched)",
    "fstack",
]

def plot(threads):
    if threads == 1:
        experiments = experiments_t1
        experiments = experiments_t8
    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][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])
    plt.xlabel('Connections (per client w/ 56 clients)')
    plt.ylabel('QPS (x1000)')
    plt.ylim(ymin = 0)

    plt.legend()
    if os.getenv('SAVE_FIGURE') != 'true':
        plt.rcParams.update({'font.size': 16})
        plt.show()
    else:
        plt.savefig('../data/figs/memcached_conn_scan.t%d.png' % (threads,), dpi = 192)