我有一个使用子进程生成外部第三方应用程序的工作队列。我想控制这些进程消耗了多少我的服务器的整体资源。其中一些外部应用程序也往往会因未知原因挂起,并通过重启解决。
什么是好的方法:
- 在 python 中监控整体服务器负载(例如,平均负载或 vmstat 的等效负载)?
- 监控我生成的进程的 CPU 负载?
- 如果我生成的进程花费的时间太长或占用的 CPU 过多,是否终止它们?
基本上,我需要能够使用生成的线程控制我放置在服务器上的负载。
希望有一个包或库可以为我做这一切?
最佳答案
标准 python 库中提供了获取平均负载和终止进程的函数 (os.getloadavg()
, os.kill()
, subprocess.Popen .kill()
).有一个psutil
其余包(psutil.Process.get_cpu_times()
、psutil.Process.get_cpu_percent()
、psutil.Process.get_memory_info()
、 psutil.Process.get_memory_percent()
等)
关于Python:根据负载、时间等监控和终止/节流生成的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1654922/