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代码在Notepad++中只闪现一下就消失无踪?
你是否曾在Notepad++中运行编写的Python代码,却发现它们瞬间消失无踪?别担心,这不是你的幻觉,在这篇指南中,我们将揭秘这一现象背后的原因,并教你如何轻松解决,让我们一起揭开这个谜团,让你的Python代码在Notepad++中安然无恙吧!2024-02-02Python的Flask框架应用程序实现使用QQ账号登录的方法
利用QQ开放平台的API使用QQ账号登录是现在很多网站都具备的功能,而对于Flask框架来说则有Flask-OAuthlib这个现成的轮子,这里我们就来看一下Python的Flask框架应用程序实现使用QQ账号登录的方法2016-06-06
最新评论