使用python实现统计Nginx进程所占用的物理内存

  

实现代码一:

此方法适用于对进行名统一的进行进行统计,如httpd, ngins或php-fpm等


# !/usr/bin/python   #编码:utf8      得到subprocess  import  Popen,管   import 操作系统      #如果需要对httpd进行统计可以把nginx改为httpd,其它服务统计同理,但有部分无法实现,如oracle   nginxpid =, Popen ([“pidof”,“nginx”),, stdout=管)   .split nginxpid =, nginxpid.stdout.read () ()      memsum =0   for 小姐:nginxpid拷贝:   ,,,pidfile =, os.path.join (“/proc/? str(我),“状态”)   ,,,with 开放(pidfile), as  f:   ,,,,,,,for  mem  f:拷贝   ,,,,,,,,,,,if  mem.startswith (“VmRSS”):   ,,,,,,,,,,,,,,pidmem =, int (mem.split () [1])   ,,,,,,,,,,,,,,memsum  +=pidmem      打印(“% d  % s”, % (memsum“知识库”))


实现代码二:

此方法适用于某个用户进行使用内存统计,最后的结果,是一个用户所使用的所有内存信息,脚本使用方法,在执行脚本的时候在脚本后面加上要统计的用户名


# !/usr/bin/python   #编码:utf8      ”“此脚本需要系统安装smem软件,安装方法:yum  -y  install  smem“”“      得到subprocess  import  Popen,管   import 系统      allmeminfo =, Popen ([“smem”,“- u”),, stdout=管)   时间=allmeminfo  allmeminfo.stdout.read () .split (“\ n”)      for 小姐:allmeminfo拷贝:   ,,,if  i.startswith (sys.argv [1]):   ,,,,,,,meminfo =, i.split ()   ,,,,,,,印刷(名称:Process “+ meminfo [0])   ,,,,,,,印刷(“Total 过程:”+ meminfo [1])   ,,,,,,,印刷(“Physics  Memroy 使用:”+ meminfo [5] +, KB)


执行结果如下:


使用python实现统计Nginx进程所占用的物理内存

使用python实现统计Nginx进程所占用的物理内存