instance.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #!/usr/bin/env python
  2. # -*- coding: utf-8 -*-
  3. '''
  4. 按照app对instance分类
  5. @Auther :liuyuqi.gov@msn.cn
  6. @Time :2018/7/6 16:13
  7. @File :instance.py
  8. '''
  9. import matplotlib
  10. matplotlib.use('Agg')
  11. import pandas as pd
  12. from configparser import ConfigParser
  13. cf = ConfigParser()
  14. config_path = "../conf/config.ini"
  15. section_name = "data_file_name"
  16. cf.read(config_path)
  17. app_interference = cf.get(section_name, "app_interference")
  18. app_resources = cf.get(section_name, "app_resources")
  19. instance_deploy = cf.get(section_name, "instance_deploy")
  20. machine_resources = cf.get(section_name, "machine_resources")
  21. # app
  22. df1 = pd.read_csv(app_resources, header=None,
  23. names=list(["appid", "cpu", "mem", "disk", "P", "M", "PM"]), encoding="utf-8")
  24. # instance
  25. df3 = pd.read_csv(instance_deploy, header=None,
  26. names=list(["instanceid", "appid", "machineid"]))
  27. # instance分类统计
  28. group1 = df3.groupby("appid").count()
  29. print(type(group1))
  30. # print(group1["instanceid"].sort_values(ascending=False))
  31. # plt.plot(group1["instanceid"].sort_values(ascending=False))
  32. # plt.savefig("../submit/group1.jpg")
  33. # 找到每个instance消耗的disk
  34. df3["disk"] = None
  35. df3["mem"] = None
  36. df3["P"] = None
  37. df3["M"] = None
  38. df3["PM"] = None
  39. for i in range(0, int(cf.get("table_size", "instance_size"))):
  40. # df1[df1["appid"] == df3["appid"][i]]["disk"]返回一个pd.Series对象(列表),其实只有一个值,需要选定第一个即可
  41. df3["mem"][i] = df1[df1["appid"] == df3["appid"][i]]["mem"].values[0]
  42. df3["cpu"][i] = df1[df1["appid"] == df3["appid"][i]]["cpu"].values[0]
  43. df3["disk"][i] = df1[df1["appid"] == df3["appid"][i]]["disk"].values[0]
  44. df3["P"][i] = df1[df1["appid"] == df3["appid"][i]]["P"].values[0]
  45. df3["M"][i] = df1[df1["appid"] == df3["appid"][i]]["M"].values[0]
  46. df3["PM"][i] = df1[df1["appid"] == df3["appid"][i]]["PM"].values[0]
  47. # ascending=False 降序
  48. df3.sort_values(ascending=False, by="disk")
  49. df3.to_csv("../data/instance.csv")