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'/Memory/Committed 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

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8291.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论