python实现监控linux性能及进程消耗性能的方法

 更新时间:2014年07月25日 09:22:08   投稿:shichen2014  
这篇文章主要介绍了python实现监控linux性能及进程消耗性能的方法,需要的朋友可以参考下

本文以实例形式实现了python监控linux性能以及进程消耗性能的方法,具体实现代码如下:

# -*- coding: utf-8 -*-
"""
Created on Tue Jun 10 10:20:13 2014

@author: lifeix
"""

from collections import OrderedDict
import time
import os

def cpuinfo():
  lines = open('/proc/stat').readlines()
  for line in lines:
    ln = line.split()
    if ln[0].startswith('cpu'):
      return ln;
  return []
W = cpuinfo()
one_cpuTotal=long(W[1])+long(W[2])+long(W[3])+long(W[4])+long(W[5])+long(W[6])+long(W[7])
one_cpuused=long(W[1])+long(W[2])+long(W[3])

def CPUinfo():
  ''' Return the information in /proc/CPUinfo
  as a dictionary in the following format:
  CPU_info['proc0']={...}
  CPU_info['proc1']={...}
  '''
  CPUinfo=OrderedDict()
  procinfo=OrderedDict()

  nprocs = 0
  f = open('/proc/cpuinfo')
  for line in f.readlines():
    if not line.strip():
      # end of one processor
      CPUinfo['proc%s' % nprocs] = procinfo
      nprocs=nprocs+1
      # Reset
      procinfo=OrderedDict()
    else:
      if len(line.split(':')) == 2:
        procinfo[line.split(':')[0].strip()] = line.split(':')[1].strip()
      else:
        procinfo[line.split(':')[0].strip()] = ''
  return CPUinfo

def meminfo():
  ''' Return the information in /proc/meminfo
  as a dictionary '''
  meminfo=OrderedDict()

  f = open('/proc/meminfo')
  for line in f.readlines():
    meminfo[line.split(':')[0]] = line.split(':')[1].strip()
  return meminfo

f = open("sysinfo.log",'a')
def logSysInfo(cpu,mem,line):
  f.write('\ncpu:%s -------mem: %s------mongocpu:%s'%(cpu,mem,line))
  f.flush();

def process_info():
  #获取drm_processes 的进程号
  textlist = os.popen('top -bcn 1 -p 12023').readlines()
  line = ''
  for t in textlist:
    if t.find('12023'):
      line = t
  line = line.split(' ')
  #此处的值按照自己的需求去取
  return line[15]
if __name__=='__main__':
  CPUinfo = CPUinfo()
  for processor in CPUinfo.keys():
    print(CPUinfo[processor]['model name'])
    f.write("cpu:%s"%CPUinfo[processor]['model name'])
  #meminfo = meminfo()
  #print('Total memory: {0}'.format(meminfo['MemTotal'])) 

  try:
    while True:
      line = process_info()
      time.sleep(2)
      mi = meminfo()
      print('Free memory: {0}'.format(mi['MemFree']))
      W = cpuinfo()
      two_cpuTotal=long(W[1])+long(W[2])+long(W[3])+long(W[4])+long(W[5])+long(W[6])+long(W[7])
      two_cpuused=long(W[1])+long(W[2])+long(W[3])
      cpuused=float(two_cpuused-one_cpuused)/(two_cpuTotal-one_cpuTotal)
      print ('%.2f%%'%(cpuused*100))
      print line
      cpu = '%.2f%%'%(cpuused*100)
      logSysInfo(cpu,format(mi['MemFree']),line)
  except KeyboardInterrupt, e:
    print ("\ncpumonit exited")
    f.close()
f.close()

相关文章

  • 对python GUI实现完美进度条的示例详解

    对python GUI实现完美进度条的示例详解

    今天小编就为大家分享一篇对python GUI实现完美进度条的示例详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-12-12
  • pytorch创建tensor函数详情

    pytorch创建tensor函数详情

    这篇文章主要介绍了pytorch创建tensor函数详情,文章围绕tensor函数的相关自来哦展开详细内容的介绍,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-03-03
  • 深入浅析Python字符编码

    深入浅析Python字符编码

    Python的字符串编码规则一直让我很头疼,花了点时间研究了下,并不复杂,本文给大家介绍python字符编码,感兴趣的朋友一起学习吧
    2015-11-11
  • Python中的Function定义方法

    Python中的Function定义方法

    Python中,函数是可被重用的程序段。对于函数的定义,可以使用def关键字。
    2009-09-09
  • python中的内置函数max()和min()及mas()函数的高级用法

    python中的内置函数max()和min()及mas()函数的高级用法

    这篇文章主要介绍了python中的内置函数max()和min()的相关知识及python中内置函数max()的高级用法,需要的朋友可以参考下
    2018-03-03
  • Python requests用法和django后台处理详解

    Python requests用法和django后台处理详解

    这篇文章主要给大家介绍了关于Python中requests用法和django后台处理的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2022-03-03
  • python中re模块知识点总结

    python中re模块知识点总结

    在本篇文章里小编给大家整理的是一篇关于python中re模块知识点总结内容,有兴趣的朋友们可以学习下。
    2021-01-01
  • python pandas数据处理教程之合并与拼接

    python pandas数据处理教程之合并与拼接

    在实际处理数据业务需求中,我们经常会遇到这样的需求,将多个表连接起来再进行数据的处理和分析,类似SQL中的连接查询功能,下面这篇文章主要给大家介绍了关于python pandas数据处理教程之合并与拼接的相关资料,需要的朋友可以参考下
    2022-02-02
  • 在TensorFlow中屏蔽warning的方式

    在TensorFlow中屏蔽warning的方式

    今天小编就为大家分享一篇在TensorFlow中屏蔽warning的方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • 一文教你解决Python不支持中文路径的问题

    一文教你解决Python不支持中文路径的问题

    Python是一种广泛使用的高级编程语言,然而在处理包含中文字符的文件路径时,Python有时会表现出一些不友好的行为,下面小编就来为大家介绍一下具体的解决方法吧
    2025-03-03

最新评论