实现代码一:
此方法适用于对进行名统一的进行进行统计,如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)
执行结果如下: