tedwhy 发表于 2018-8-12 09:59:27

python 统计单个核cpu使用率

# -*- coding: cp936 -*-  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:无法打开文件%s,系统无法继续运行。" % (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)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)
  usn=long(cpustr)+long(cpustr)+long(cpustr)
  cpustart] = 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)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)+long(cpustr)
  usn=long(cpustr)+long(cpustr)+long(cpustr)
  cpuend] = str(usni)+":"+str(usn)
  for line in cpustart:
  start = cpustart.split(':')
  usni1,usn1 = float(start),float(start)
  end = cpuend.split(':')
  usni2,usn2 = float(end),float(end)
  cpuper=(usn2-usn1)/(usni2-usni1)
  cpuusage = int(100*cpuper)
  return cpuusage
  if __name__ == '__main__':
  a = get_cpu_usage()
  print a
页: [1]
查看完整版本: python 统计单个核cpu使用率