get_cpu_mem.py 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # -*- coding: utf-8 -*-
  2. # @Author: wangkun
  3. # @Time: 2023/7/19
  4. import psutil
  5. class GetCpuMen:
  6. @classmethod
  7. def get_pid(cls, script):
  8. # 遍历所有正在运行的进程
  9. for proc in psutil.process_iter():
  10. try:
  11. # 获取进程的命令行参数
  12. cmds = proc.cmdline()
  13. # 检查命令行参数是否包含爬虫脚本的名称或关键字
  14. for cmd in cmds:
  15. if script in cmd:
  16. print(f"cmd:{cmd}")
  17. # 获取进程的PID
  18. pid = proc.pid
  19. return pid
  20. except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
  21. pass
  22. @classmethod
  23. def get_cpu_mem(cls, script):
  24. import psutil
  25. # 获取当前进程的PID
  26. pid = cls.get_pid(script)
  27. print(f"pid:{pid}")
  28. # 获取CPU的使用情况
  29. cpu_percent = round(psutil.Process(pid).cpu_percent(), 2)
  30. # 获取内存的使用情况
  31. memory_percent = round(psutil.Process(pid).memory_percent(), 2)
  32. print(f"CPU使用率:{cpu_percent}")
  33. print(f"内存使用率:{memory_percent}")
  34. @classmethod
  35. def get_all_cpu_mem(cls):
  36. script_list = [
  37. "run_xg_search",
  38. "run_xg_author",
  39. "run_xng_author",
  40. "run_xng_play",
  41. "run_xng_hour",
  42. "run_dy_author",
  43. "run_dy_recommend",
  44. "run_ks_recommend",
  45. "run_ks_author",
  46. "run_bszf_recommend",
  47. "run_ssnnyfq_recommend",
  48. "run_gzh_author",
  49. "run_weixinzhishu_score",
  50. "get_cpu_mem",
  51. ]
  52. for scrip in script_list:
  53. print(f"scrip:{scrip}")
  54. cls.get_cpu_mem(scrip)
  55. print("\n")
  56. if __name__ == "__main__":
  57. # GetCpuMen.get_cpu_mem("get_cpu_mem")
  58. GetCpuMen.get_all_cpu_mem()
  59. pass