|
- import json
- import numpy as np
- from matplotlib import mlab
- import matplotlib.pyplot as plt
-
- def get_hosts_info(input_fil):
- hosts = {}
- for line in open(input_fil, 'r', encoding='utf-8').readlines():
- dict = json.loads(line)
- if dict['type'] == 'host':
- tup = (dict['host_cpu'],dict['host_memory'],dict['host_disk'])
- if tup in hosts:
- hosts[tup] += 1
- else:
- hosts[tup] = 1
- print('host info:', hosts)
- return hosts
-
- def get_demand_distr(title, d0, d1 ,d2, d3):
- width = 1
- kde0 = mlab.GaussianKDE(d0)
- kde1 = mlab.GaussianKDE(d1)
- kde2 = mlab.GaussianKDE(d2)
- kde3 = mlab.GaussianKDE(d3)
- ls_num = 1000
- plt.plot(np.linspace(min(d0), max(d0), ls_num), kde0(np.linspace(min(d0), max(d0), ls_num)),
- 'dodgerblue', linewidth=width)
- plt.plot(np.linspace(min(d1), max(d1), ls_num), kde1(np.linspace(min(d1), max(d1), ls_num)),
- 'g', linewidth=width)
- plt.plot(np.linspace(min(d2), max(d2), ls_num), kde2(np.linspace(min(d2), max(d2), ls_num)),
- 'orange', linewidth=width)
- plt.plot(np.linspace(min(d3), max(d3), ls_num), kde3(np.linspace(min(d3), max(d3), ls_num)),
- 'tab:red', linewidth=width)
- plt.legend(['t0', 't1', 't2', 't3'])
-
- plt.title(title)
- plt.xlabel('Demand')
- plt.ylabel('Density')
-
- def get_ins_info(input_fil):
- cpu=[[],[],[],[]]
- mem=[[],[],[],[]]
- disk=[[],[],[],[]]
- for line in open(input_fil, 'r', encoding='utf-8').readlines():
- dict = json.loads(line)
- if dict['type'] == 'instance':
- cpu[0].append(dict['instance_cpu_0'])
- cpu[1].append(dict['instance_cpu_1'])
- cpu[2].append(dict['instance_cpu_2'])
- cpu[3].append(dict['instance_cpu_3'])
- mem[0].append(dict['instance_memory_0'])
- mem[1].append(dict['instance_memory_1'])
- mem[2].append(dict['instance_memory_2'])
- mem[3].append(dict['instance_memory_3'])
- disk[0].append(dict['instance_disk_0'])
- disk[1].append(dict['instance_disk_1'])
- disk[2].append(dict['instance_disk_2'])
- disk[3].append(dict['instance_disk_3'])
-
- plt.subplots(figsize=(32, 4))
- plt.subplot(1, 3, 1)
- get_demand_distr('CPU',cpu[0],cpu[1],cpu[2],cpu[3])
- plt.subplot(1, 3, 2)
- get_demand_distr('Memory',mem[0],mem[1],mem[2],mem[3])
- plt.subplot(1, 3, 3)
- get_demand_distr('Disk',disk[0],disk[1],disk[2],disk[3])
- plt.show()
|