菜鸟笔记
提升您的技术认知

python获取每颗cpu使用率-ag真人游戏

阅读 : 967

以下是关于python来获取服务器每颗cpu使用率的使用脚本。

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import re,time 
def _read_cpu_usage(): 
        """read the current system cpu usage from /proc/stat""" 
        statfile = "/proc/stat" 
        cpulist = [] 
        try: 
                f = open(statfile, 'r') 
                lines = f.readlines() 
        except: 
                print "error: can not open %s,the system cannot continue to run" % (statfile) 
                return [] 
        for line in lines:
            tmplist = line.split()
            if len(tmplist) < 5:
                continue
            for b in tmplist:
                 m = re.search(r'cpu\d ',b)
                 if m is not none:
                    cpulist.append(tmplist)
        f.close()
        return cpulist
def get_cpu_usage(): 
        cpuusage = {} 
        cpustart = {} 
        cpuend = {} 
        linestart = _read_cpu_usage() 
        if not linestart: 
                return 0 
        for cpustr in linestart: 
                usni=long(cpustr[1]) long(cpustr[2]) long(cpustr[3]) long(cpustr[5]) long(cpustr[6]) long(cpustr[7]) long(cpustr[4]) 
                usn=long(cpustr[1]) long(cpustr[2]) long(cpustr[3]) 
                cpustart[cpustr[0]] = str(usni) ":" str(usn) 
        sleep = 2 
        time.sleep(sleep) 
        lineend = _read_cpu_usage() 
        if not lineend: 
                return 0 
        for cpustr in lineend: 
                usni=long(cpustr[1]) long(cpustr[2]) long(cpustr[3]) long(cpustr[5]) long(cpustr[6]) long(cpustr[7]) long(cpustr[4]) 
                usn=long(cpustr[1]) long(cpustr[2]) long(cpustr[3]) 
                cpuend[cpustr[0]] = str(usni) ":" str(usn) 
        for line in cpustart: 
                start = cpustart[line].split(':') 
                usni1,usn1 = float(start[0]),float(start[1]) 
                end = cpuend[line].split(':') 
                usni2,usn2 = float(end[0]),float(end[1]) 
                cpuper=(usn2-usn1)/(usni2-usni1) 
                cpuusage[line] = int(100*cpuper) 
         
        return cpuusage 
if __name__ == '__main__': 
        a = get_cpu_usage() 
        print a

 

网站地图