python如何统计cpu利用率
June 26, 2015
python统计cpu利用率是如何来实现的呢?下面的内容将会通过具体的实例来演示python统计cpu利用率的实现方法及相关技巧:
本文实例讲述了python统计cpu利用率的方法。分享给大家供大家参考。具体实现方法如下:
#-*-coding=utf-8-*-
import win32pdh
import time
# Counter paths
PROCESSOR_PERCENT = r'Processor(_Total)% Processor Time'
MEMORY_PERCENT = r'Memory% Committed Bytes In Use'
MEMORY_COMMITTED = r'MemoryCommitted Bytes'
PROCESS_BYTES = lambda x: r'Process(%s)Private Bytes' % x
class Query:
def __init__(self):
self.counters = {}
self.query = None
self.query = win32pdh.OpenQuery(None, 0)
def add_counter(self, path):
if win32pdh.ValidatePath(path) != 0:
raise Exception('Invalid path: %s' % path)
counter = win32pdh.AddCounter(self.query, path, 0)
self.counters[path] = counter
def remove_counter(self, path):
win32pdh.RemoveCounter(self.counters[path])
del self.counters[path]
def get_values(self):
values = {}
win32pdh.CollectQueryData(self.query)
for path in self.counters:
status, value = win32pdh.GetFormattedCounterValue(
self.counters[path], win32pdh.PDH_FMT_LONG)
values[path] = value
return values
sysinfo_query = Query()
sysinfo_query.add_counter(PROCESSOR_PERCENT)
sysinfo_query.add_counter(MEMORY_PERCENT)
sysinfo_query.get_values()
def get_sysinfo():
"""Return a tuple (mem_usage, cpu_usage)."""
info = sysinfo_query.get_values()
return info[MEMORY_PERCENT], info[PROCESSOR_PERCENT]
listcpu=[]
while True:
time.sleep(2)
x,y=get_sysinfo()
listcpu.append(y)
if len(listcpu)==10:
icount=0
for c in listcpu:
if c>4:
icount+=1
if icount>5:
print "在统计的1分钟内,cpu已经有5次大于4%"
listcpu=[]
print y
python统计cpu利用率就是这样,欢迎大家参考。。。。
0 Comments