Consumo de memória por processo

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

[ Hits: 480 ]

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

Calculando IMC Python

Programa para calcular a média e a nota trimestral

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

Conexão de Roteadores CISCO

Leitura de todos os valores de qualquer xml


  

Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts