zoukankan      html  css  js  c++  java
  • python 计算apache进程占用的内存大小以及占物理内存的比例

     
    目的:计算所有apache进程占用的内存大小以及占物理内存的比例:
    思路:利用系统中/proc/meminfo的现有数据进行统计
    1、pidof列出服务对应进程的PID
    [root@yangliheng ~]# pidof httpd
    31235 23664 5358 5357 5356 5355 5354 5353 5352 5351 1498
    2、读取PID对应的文件/proc/5355/status(以PID5355为例),遍历得到这个进程对应的占用内存(VmRSS对应的)
    [root@yangliheng ~]# cat /proc/5355/status
    Name:httpd
    State:S (sleeping)
    Tgid:5355
    Pid:5355
    PPid:1498
    VmHWM:   51336 kB
    VmRSS:   45720 kB
    3、查看/proc/meminfo得到系统的总物理内存
    4、就算将Apache 对应所有进程的内存相加,与系统总物理内存相比得到所占比例
    $cat /proc/meminfo
    MemTotal:        2052440 kB //总内存


     
    #!/usr/bin/env python
    import os
    from subprocess import Popen, PIPE
    def getPid():
        p=Popen(['pidof','httpd'],stdout=PIPE,stderr=PIPE)
        pids = p.stdout.read().split()
        return pids
     
    def paresPidFile(pids):
         sum =0
         for i in pids:
             fn = os.path.join('/proc/',i,'status')
             with open(fn) as fd:
                for line in fd:
                     if line.startswith('VmRSS'):
                         http_mem =int(line.split()[1])
                         sum += http_mem
                         break
         return sum
    def total_mem(f):
        with open(f) as fd:
            for line in fd:
                 if line.startswith('MemTotal'):
                        total_mem =int(line.split()[1])
                        return total_mem
    if __name__ =='__main__':
        pids = getPid()
        http_mem = paresPidFile(pids)
        total = total_mem('/proc/meminfo')
        print"Apache memory is: %s KB"% http_mem
        print "Percent: %.2f%%"%(http_mem/float(total)*100)
    

      

     
     





  • 相关阅读:
    跳出语句 break continue
    循环语句 for循环、while循环、do while循环
    选择语句
    判断语句
    方法入门
    ++运算与--运算
    js面向对象的几种方式----工厂模式、构造函数模式、原型模式
    JavaScript This 的六道坎
    前端必备,十大热门的 JavaScript 框架和库
    localStorage、sessionStorage详解,以及storage事件使用
  • 原文地址:https://www.cnblogs.com/yangliheng/p/5692093.html
Copyright © 2011-2022 走看看