Consumo de memória por processo

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

[ Hits: 4.072 ]

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

Expressões numéricas

Conexão de Roteadores CISCO

Gerador palpite Mega Sena v1.0

Cronômetro com interface gráfico utilizando a biblioteca Tkinter

Script para comunicação OBD2


  

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