Consumo de memória por processo

Publicado por Leonardo Berbert Gomes (última atualização em 03/07/2020)

[ Hits: 1.947 ]

Homepage: https://www.linkedin.com/in/leoberbert

Download check_process.py




Script simples que tem como objetivo verificar o consumo de memória dos processos.

Alterar a variável "file = open(home_dir + "/scripts/.Config", "r")" para o caminho onde encontra-se seu arquivo de configuração contendo os nomes dos processos que deseja-se monitorar:

Ex.:

cat .Config

logstash
metricbeat
elasticsearch
kibana

check_process.py
====================================================================================================
                                      Process Status                                      
====================================================================================================
PROCESS: logstash               PID: 19133      MEMORY % : 18.59     STARTED: 2020-06-11 15:49:34
PROCESS: metricbeat            PID: 65954     MEMORY % : 0.06       STARTED: 2020-05-26 17:20:14
PROCESS: elasticsearch        PID: 11989     MEMORY % : 40.73     STARTED: 2020-05-03 23:00:04
PROCESS: kibana                  PID: 109232   MEMORY % : 0.55       STARTED: 2020-06-18 15:56:20

  



Esconder código-fonte

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import psutil
import re
import os
from datetime import datetime, timedelta

rows, columns = os.popen('stty size', 'r').read().split()
os.system('clear')
home_dir = os.environ["HOME"]

def memory_usage_psutil(pid):
    process = psutil.Process(pid)
    mem = process.memory_percent()
    return mem

try:
    print("{:=^100}".format("="))
    print("{:^90}".format("Process Status"))
    print("{:=^100}".format("="))
    file = open(home_dir + "/scripts/.Config", "r")
    for line in file:
        line = line.rstrip()
        pattern = '(.*' + line + '.*)'
        for proc in psutil.process_iter():
            cmdline = str(proc.cmdline())
            proc = str(proc)
            splited_proc = proc.split("=")
            pid = splited_proc[1]
            pid = pid.replace(', name', '')
            mem = (memory_usage_psutil(int(pid)))
            mem = round(mem, 2)
            started = splited_proc[3]
            started = started.replace('\'', '')
            started = started.replace(')', '')
            result = re.match(pattern, cmdline)
            if result:
                print("{:<29}".format("PROCESS: " + line) + "{:<15}".format("PID: " + pid) + "{:<20}".format("MEMORY % : " + str(mem)) + "{:<20}".format(" STARTED: " + started))
except IOError:
    print ("Error: The configuration file does not exist.")
    exit(0)

Scripts recomendados

pyTube v1.1

Conexão de Roteadores CISCO

Meu programa de Matematica

Editor de texto em Tkinter

Expressões numéricas


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário