Consumo de memória por processo

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

[ Hits: 1.346 ]

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

IPC em Python

Jogo da forca criado em Python

Script em Python com várias funções matemáticas [iniciante]

Botnet em Python sem segredos!

Calculadora em Python


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário