| 32 | |
| 33 | |
| 34 | def plot_experiment(experiment_name, input_folder, column): |
| 35 | nodes = glob.glob(input_folder + "/cpu_mem_usage/*.csv") |
| 36 | master_nodes = [] |
| 37 | |
| 38 | for n in nodes: |
| 39 | # Master node |
| 40 | if experiment_name == "Knative-on-K8s" and ("hp156" in n or "hp091" in n or "hp155" in n): # 023 |
| 41 | master_nodes.append(n) |
| 42 | nodes.remove(n) |
| 43 | |
| 44 | # Loader node |
| 45 | if experiment_name == "Knative-on-K8s" and "hp004" in n: # 075 |
| 46 | nodes.remove(n) |
| 47 | |
| 48 | # Master node(s) |
| 49 | if experiment_name == "Dirigent" and ("hp023" in n): # or "hp091" in n or "hp081" in n): |
| 50 | master_nodes.append(n) |
| 51 | nodes.remove(n) |
| 52 | |
| 53 | # Data plane(s) |
| 54 | if experiment_name == "Dirigent" and ("hp091" in n): # or "hp077" in n or "hp134" in n): |
| 55 | nodes.remove(n) |
| 56 | |
| 57 | # Loader node |
| 58 | if experiment_name == "Dirigent" and ("hp080" in n): |
| 59 | nodes.remove(n) |
| 60 | |
| 61 | experiment_df = pd.read_csv(input_folder + "/experiment_duration_30.csv") |
| 62 | start = experiment_df['startTime'][0] / 1e6 |
| 63 | end = experiment_df['startTime'].iloc[-1] / 1e6 |
| 64 | |
| 65 | id = 0 |
| 66 | master_node_df = pd.DataFrame() |
| 67 | for n in master_nodes: |
| 68 | df = pd.read_csv(n) |
| 69 | df = df[df['Timestamp'] > start] |
| 70 | df = df[df['Timestamp'] < end] |
| 71 | df = df.reset_index(drop=True) |
| 72 | |
| 73 | df['time'] = df['Timestamp'] - df['Timestamp'][0] |
| 74 | df['minute'] = df['time'] / 60 |
| 75 | df = df[df['minute'] >= 10] |
| 76 | |
| 77 | df['minute'] = (df['minute']).round(0).astype('int') |
| 78 | df = df.groupby(df.minute, as_index=False).mean() |
| 79 | |
| 80 | df['id'] = id |
| 81 | if id == 0: |
| 82 | master_node_df = df |
| 83 | id += 1 |
| 84 | master_node_df = pd.concat([master_node_df, df], ignore_index=True) |
| 85 | |
| 86 | # need to use space before column to access it... |
| 87 | master_node_df = master_node_df.groupby(master_node_df.minute, as_index=False).mean() |
| 88 | ax1.step(master_node_df['minute'], master_node_df[column], label=experiment_name, where='post') |
| 89 | |
| 90 | id = 0 |
| 91 | worker_df = pd.DataFrame() |