首页 > 代码库 > 获取每颗cpu使用率

获取每颗cpu使用率

以下是关于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(rcpu\d+,b)                 if m is not None:                    cpulist.append(tmplist)        f.close()        return cpulistdef 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

 

获取每颗cpu使用率