Consumo de memória por processo

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

[ Hits: 3.788 ]

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

multimídia tools 0.1 BETA

Botnet em Python sem segredos!

Manipulação de XML com Python

Lojinha.py

Como rodar músicas mp3 pelo Python


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts