python统计cpu利用率的方法
本文实例讲述了python统计cpu利用率的方法。分享给大家供大家参考。具体实现方法如下:
#-*-coding=utf-8-*-
importwin32pdh
importtime
#Counterpaths
PROCESSOR_PERCENT=r'\Processor(_Total)\%ProcessorTime'
MEMORY_PERCENT=r'\Memory\%CommittedBytesInUse'
MEMORY_COMMITTED=r'\Memory\CommittedBytes'
PROCESS_BYTES=lambdax:r'\Process(%s)\PrivateBytes'%x
classQuery:
def__init__(self):
self.counters={}
self.query=None
self.query=win32pdh.OpenQuery(None,0)
defadd_counter(self,path):
ifwin32pdh.ValidatePath(path)!=0:
raiseException('Invalidpath:%s'%path)
counter=win32pdh.AddCounter(self.query,path,0)
self.counters[path]=counter
defremove_counter(self,path):
win32pdh.RemoveCounter(self.counters[path])
delself.counters[path]
defget_values(self):
values={}
win32pdh.CollectQueryData(self.query)
forpathinself.counters:
status,value=win32pdh.GetFormattedCounterValue(
self.counters[path],win32pdh.PDH_FMT_LONG)
values[path]=value
returnvalues
sysinfo_query=Query()
sysinfo_query.add_counter(PROCESSOR_PERCENT)
sysinfo_query.add_counter(MEMORY_PERCENT)
sysinfo_query.get_values()
defget_sysinfo():
"""Returnatuple(mem_usage,cpu_usage)."""
info=sysinfo_query.get_values()
returninfo[MEMORY_PERCENT],info[PROCESSOR_PERCENT]
listcpu=[]
whileTrue:
time.sleep(2)
x,y=get_sysinfo()
listcpu.append(y)
iflen(listcpu)==10:
icount=0
forcinlistcpu:
ifc>4:
icount+=1
ificount>5:
print"在统计的1分钟内,cpu已经有5次大于4%"
listcpu=[]
printy
希望本文所述对大家的Python程序设计有所帮助。