python如何实现内存监控系统

  介绍

这篇文章主要介绍python如何实现内存监控系统,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

具体内容如下

思路:通过系统命令或操作系统文件获取到内存信息(linux内存信息存在/proc/meminfo文件中,mac os通过命令vm_stat命令可以查看)

并将获取到信息保存到数据库中,通过web将数据实时的展示出来。(获取数据,展示数据)

<强> 1,后台数据采集(获取数据)

import 子流程   import 再保险   import  MySQLdb  as  mysql   import 时间   import 套接字      #获取mysql数据游标,通过游标操作数据库   db =, mysql.connect(用户=皉oot",, passwd=?23456“,主机=發ocalhost",, db=癊BANK",, charset=皍tf8")   db.autocommit(真正的)   时间=cur  db.cursor ()      “““   Mac才能系统各应用程序占内存信息   “““   def  processesUseMeminfo ():   ps 才能=,subprocess.Popen ((& # 39; ps # 39;,, & # 39; -caxm& # 39;,, & # 39; -orss,通讯,),,stdout=subprocess.PIPE) .communicate () [0]   时间=processLines 才能;ps.split (& # 39; \ n # 39;)   print  processLines才能   sep 才能=,re.compile (& # 39; [\ s] + & # 39;)   时间=rssTotal 才能;0 #,kB   for 才能;row 拷贝范围(len (processLines)):   ,,,rowText =, processLines(行).strip ()   ,,,rowElements =, sep.split (rowText)   ,,,试一试:   ,,,,rss =,浮子(rowElements [0]), *, 1024   ,,,除了:   ,,,,rss =, 0, #,忽略……   ,,,rssTotal  +=, rss   return  rssTotal才能      “““   Mac内才能存活动信息   “““   def  processVM ():   时间=vm 才能;subprocess.Popen ((& # 39; vm_stat& # 39;],, stdout=subprocess.PIPE) .communicate () [0]   时间=vmLines 才能;vm.split (& # 39; \ n # 39;)   时间=sep 才能;re.compile (& # 39;: [\ s] + & # 39;)   vmStats 才能=,{}   for 才能;row 拷贝范围(1,len (vmLines) 2):   ,,,rowText =, vmLines(行).strip ()   ,,,rowElements =, sep.split (rowText)   ,,,vmstat [(rowElements [0])],=, int (rowElements [1] .strip(& # 39; \ # 39;公司))/1024   return 才能,vmstat      “““   ,,执行更新数据库中内存信息,供网络展示内存的实时数据   “““   erval =0   def 执行():   & # 39;才能& # 39;& # 39;更新内存活动信息& # 39;& # 39;& # 39;   global  erval才能   尝试才能:   ,,,ip =, socket.gethostbyname (socket.gethostname()), #获取本机ip   ,,,# ip =, & # 39; 10.21.8.10& # 39;   ,,,vmStats =, processVM ()   ,,,wired =, vmstat [& # 39; Pages  wired 下来# 39;】   ,,,active =, vmstat [& # 39; Pages 活跃# 39;】   ,,,free =, vmstat [& # 39; Pages 自由# 39;】   ,,,inactive =, vmstat [& # 39; Pages 活动# 39;】   ,,,t =, int (time.time ())   ,,,sql =,“insert  into 统计(主机、mem_free mem_usage、mem_total load_avg,时间),VALUES  (& # 39; % & # 39; & # 39; % d # 39;, & # 39; % d # 39;, & # 39; % d # 39;, & # 39; % d # 39;, & # 39; % d # 39;)“\   ,,,,,,% (ip,有线,活跃、自由、不活跃,t)   ,,,print  sql   ,,,cur.execute (sql)   ,,,erval  +=1   ,,,if  erval 祝辞,50:   ,,,,,del_sql =,“delete 得到stat  where  time  & lt; % d “% t   ,,,,,print  & # 39;执行数据清理强生# 39;del_sql   ,,,,,cur.execute (del_sql)   ,,,,,erval =0      except 才能;Exception , message :   ,,,print  & # 39;获取内存信息异常:& # 39;消息   ,,,#通过   最后才能:   ,才能通过         & # 39;才能& # 39;& # 39;更新& # 39;& # 39;& # 39;   ,# TODO   # rssTotal 才能=,processesUseMeminfo ()      #死循环不停的读取内存,每一秒钟插入一条新的内存信息   while 真正的:   time . sleep才能(1)   ,,execute ()   print 才能;& # 39;没有强生# 39;

获取到数据保存到MySQL数据中,新建表:

CREATE  TABLE “统计”,(   ,“id”int (11), unsigned  NOT  NULL  AUTO_INCREMENT,   ,“主机”varchar (256), DEFAULT 空,   ,' mem_free ' int (11), DEFAULT 空,   ,' mem_usage ' int (11), DEFAULT 空,   ,' mem_total ' int (11), DEFAULT 空,   ,‘load_avg varchar (128), DEFAULT 空,   ,“时间”,长整型数字(11),DEFAULT 空,   ,PRIMARY  KEY  (id),   ,KEY “主机”,(“主机”(255))   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

python如何实现内存监控系统