分析:
# pidof httpd
97144 4574 4573 4572 4571 4570
# cat /proc/97144/status | grep VmRSS
VmRSS: 5032 kB
#!/usr/bin/env python
#coding=utf8
import subprocess
pidcheck = subprocess.Popen('pidof httpd',shell=True,stdout=subprocess.PIPE)
pid = pidcheck.stdout.read().rstrip().split()
memsize = 0
for i in pid:
filename = "/proc/"+i+"/status"
#os.path.join("/proc","i","status") #等同于上條語句
with open(filename,"r") as statusfile:
for line in statusfile:
if line.startswith("VmRSS"):
memsize+=int(line.split()[1])
print "Apache程序占用記憶體:%sk" % memsize
with open("/proc/meminfo","r") as memfile:
for line in memfile:
if line.startswith("MemTotal"):
memtotal = int(line.split()[1])
print "Apache程序記憶體占用率為:%.2f%%" % (memsize/float(memtotal)*100)
運作結果:
# python a.py
Apache程序占用記憶體大小:20472k
Apache程序記憶體占用率為:0.25%
本文轉自 CrazyWing 51CTO部落格,原文連結:http://blog.51cto.com/fklinux/1980631