python统计cpu

CPU与内存使用率监测
本文介绍了一个Python脚本,该脚本利用win32pdh库来监测系统的CPU使用率及内存使用情况,并通过设置阈值来判断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
   

转载于:https://www.cnblogs.com/itfenqing/archive/2011/07/18/4429575.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值