首页 > 代码库 > 获取每颗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(r‘cpu\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使用率
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。