使用Python远程监控PC CPU使用率
我正在使用以下代码来获取远程电脑的CPU使用百分比,但这个过程很慢,而且因为要通过SSH连接远程电脑,所以还会增加负担。
per=(subprocess.check_output('ssh root@192.168.32.218 nohup python psutilexe.py',stdin=None,stderr=subprocess.STDOUT,shell=True)).split(' ')
print 'CPU %=',float(per[0])
print 'MEM %=',float(per[1])
其中,psutilexe.py
的内容如下:
import psutil
print psutil.cpu_percent(), psutil.virtual_memory()[2]
请问有没有其他方法可以用Python来测量远程电脑的CPU使用百分比呢?
3 个回答
0
我找了很久,觉得WMI可以满足你的需求。
import wmi
pc = wmi.WMI('PC_Name')
cpu = pc.Win32_Processor()
for i in cpu:
print (i.LoadPercentage)
希望这正是你需要的。
0
你不需要自己写一个Python脚本,因为你可以直接用 top
命令查看CPU使用情况,或者如果你安装了 sysstat
,也可以用它。
你有没有对你的应用进行过性能分析?是自定义脚本让它变慢,还是SSH连接本身的问题?如果是SSH连接的问题,那么:
考虑只记录一次,如果你得到多个值的话,或者:
考虑使用消息队列来代替SSH连接:被监控的机器会不断把它们的CPU使用情况发送到一个消息队列服务,然后负责收集结果的机器会去监听这个消息队列。
1
我建议你看看 Glances。它是用 Python 写的,也可以用来监控远程服务器:
https://github.com/nicolargo/glances
在远程服务器上使用 Glances 的方法:
http://mylinuxbook.com/glances-an-all-in-one-system-monitoring-tool/