溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

使用python實現(xiàn)統(tǒng)計Nginx進程所占用的物理內(nèi)存

發(fā)布時間:2020-10-23 17:22:06 來源:網(wǎng)絡(luò) 閱讀:7277 作者:藍色_風(fēng)暴 欄目:建站服務(wù)器

實現(xiàn)代碼一:

此方法適用于對進行名統(tǒng)一的進行進行統(tǒng)計,如httpd,ngins或php-fpm等


#!/usr/bin/python
#coding:utf8

from subprocess import Popen, PIPE
import os

#如果需要對httpd進行統(tǒng)計可以把nginx改為httpd,其它服務(wù)統(tǒng)計同理,但有部分無法實現(xiàn),如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"))


實現(xiàn)代碼二:

此方法適用于某個用戶進行使用內(nèi)存統(tǒng)計,最后的結(jié)果是,一個用戶所使用的所有內(nèi)存信息,腳本使用方法,在執(zhí)行腳本的時候在腳本后面加上要統(tǒng)計的用戶名


#!/usr/bin/python
#coding:utf8

"""此腳本需要系統(tǒng)安裝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")


執(zhí)行結(jié)果如下:


使用python實現(xiàn)統(tǒng)計Nginx進程所占用的物理內(nèi)存

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI