使用python实现统计Nginx进程所

发布时间:2019-09-21 11:14:23编辑:auto阅读(1468)

    实现代码一:

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


    #!/usr/bin/python
    #coding:utf8
    
    from subprocess import Popen, PIPE
    import os
    
    #如果需要对httpd进行统计可以把nginx改为httpd,其它服务统计同理,但有部分无法实现,如oracle
    nginxpid = Popen(["pidof", "nginx"], stdout=PIPE)
    nginxpid = nginxpid.stdout.read().split()
    
    memsum = 0
    for i in nginxpid:
        pidfile = os.path.join("/proc/", str(i), "status")
        with open(pidfile) as f:
            for mem in f:
                if mem.startswith("VmRSS"):
                   pidmem = int(mem.split()[1])
                   memsum += pidmem
    
    print("%d %s" %(memsum,"KB"))


    实现代码二:

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


    #!/usr/bin/python
    #coding:utf8
    
    """此脚本需要系统安装smem软件,安装方法:yum -y install smem"""
    
    from subprocess import Popen, PIPE
    import sys
    
    allmeminfo = Popen(["smem", "-u"], stdout=PIPE)
    allmeminfo = allmeminfo.stdout.read().split("\n")
    
    for i in allmeminfo:
        if i.startswith(sys.argv[1]):
            meminfo = i.split()
            print("Process Name: "+meminfo[0])
            print("Total Process: "+meminfo[1])
            print("Physics Memroy Use: "+meminfo[5]+" KB")


    执行结果如下:


    wKioL1k_iWzT3v5_AAAXeVup4ac834.png-wh_50

关键字

上一篇: H3C nqa 配置

下一篇: SougouMp3小偷