Você está na página 1de 29

Administração de Ambiente Linux

Conteúdo da Aula

Gerenciamento de Processos
Administração de Ambiente Linux
Gerenciamento de Processos

Cada evento executado no ambiente Linux é controlado pelo kernel


através de uma atribuição de processo, através dessa atribuição
cada tarefa do sistema pode ser categorizada, classificada e
controlada conforme sua prioridade de execução para o sistema.

Existem diversas ferramentas para administração de processos, é


fundamental que o sysadmin saiba como controlar processos e
escalar suas prioridades para resolver problemas em tempo de
execução no ambiente.
Administração de Ambiente Linux
Comandos para Gerenciamento de Processos

ps → Exibe os processos correntes em execução no kernel


top → Administra processos, exibe carga de sistema e logins
pstree → Exibe processos em forma de árvore
pgrep/pkill → Manipula processo por PID
pidof → Retorna o PID de um processo
killall → Mata processo principal e processos derivados
Administração de Ambiente Linux
Comandos para Gerenciamento de Processos

Kill → Envia um sinal de controle para o processo


jobs → Exibe a lista de processos em execução
fg/bg → Coloca processo em foreground e background
CTRL + z → Coloca processo corrente em background
hohup → Mantém execução de processo
nice/renice → Altera a prioridade de execução de processos
Administração de Ambiente Linux
Gerenciamento de Processos

Acesse o node storage, suba para root e execute o ps


$ su -
# ps

Execute o ps buscando processos e seus estados de execução


# ps a

ps com estados de execução, usuários e estatísticas de consumo


# ps au
Administração de Ambiente Linux
Gerenciamento de Processos

Some ao comando processos não vinculados a usuários


# ps aux

Para maiores informações


# man ps

Entenda os campos do ps aux no slide abaixo


# ps aux
Administração de Ambiente Linux
Gerenciamento de Processos

Colunas do comando ps com as flags aux

TIME → Usuário dono do processo


PID → Identificação do processo
%CPU → Porcentagem de processamento usada
%MEM → Porcentagem de memória usada
VSZ → Tamanho virtual do processo
RSS → Resident Set Size – Memória usada em KB
Administração de Ambiente Linux
Gerenciamento de Processos

Colunas do comando ps com as flags aux

TTY → Terminal de execução do processo


STAT → Estado atual do processo
START → Inicio do processo
TIME → Tempo de atividade do processo
COMMAND → Comando de execução do processo
Administração de Ambiente Linux
Gerenciamento de Processos

Sinais de estados de processo em STAT

D → Processo morto (usually IO)


R → Running (alocado na fila de processos)
S → Dormindo Ininterruptamente
T → Parado por sinal de controle
Z → Zombie, terminado pelo fim do processo pai
> → Prioridade maior que a padrão
< → Prioridade menor que a padrão
Administração de Ambiente Linux
Gerenciamento de Processos

Sinais de estados de processo em STAT

+ → Processo pai
s → Session Leader, possui processos dependentes
I → Processo possui múltiplas threads
L → Processo com paginação travada em memória
N → Processo definido com prioridade alterada
Administração de Ambiente Linux
Gerenciamento de Processos

Execute o comando top, utilize a tecla 'q' para sair de sua execução
# top

A primeira linha do top retorna o uptime do sistema, usuário logados


e carga de processamento na seguinte ordem último minuto, últimos
5 minutos e últimos 15 minutos.

Na segunda linha temos a descrição dos processos e na terceira


linha temos os campos relacionados ao processamento da terefas,
veja abaixo a descrição de cada campo.
Administração de Ambiente Linux
Gerenciamento de Processos

us → Tempo de processamento por parte do usuário


sy → Tempo de processamento por parte do sistema
ni → Tempo de processamento com prioridade alterada
id → Tempo de ociosidade (IDLE)
wa → Tempo de espera por I/O
hi → Interrupções de hardware
si → Mapeamento de interrupções do kernel
st → Steal Time, tempo de processamento roubado por tarefas
Administração de Ambiente Linux
Gerenciamento de Processos

Entendendo as colunas do top


PID → ID do processo
USER → Usuário dono do processo
PR → Prioridade de execução do processo
NI → Prioridade Alterada de Processo
VIRT → Quantidade de memória virtual usada pelo processo
RES → Memória residente utilizada pelo processo
SHR → Memória compartilhada utilizada pelo processo
Administração de Ambiente Linux
Gerenciamento de Processos

Entendendo as colunas do top

S → Status do processo
%CPU → Processamento total até a execução do comando
%MEM → Quantidade de memória compartilhada disponível
TIME+ → Tempo da CPU usado em centésimos de segundos
COMMAND → Nome do comando responsável pelo processo
Administração de Ambiente Linux
Gerenciamento de Processos

Instale o pacote psmisc nos nodes intranet e storage


# apt install psmisc
# yum install psmisc

Execute o comando pstree


# pstree

Para maiore informações


# man pstree
Administração de Ambiente Linux
Gerenciamento de Processos

Encontre o PID do processo rsyslogd


# pgrep rsyslogd
# pidof rsyslogd

Encerre o rsyslogd no Debian


# pkill rsyslogd

Para lidarmos com processos é importante entendermos os sinais


de controle, verifique alguns sinais de controle abaixo.
Administração de Ambiente Linux
Gerenciamento de Processos

Entenda alguns dos STANDARD SIGNALS

SIGHUP (1) → ID do processo


SIGNTERM (9) → Usuário dono do processo
SIGCONT (15) → Prioridade de execução do processo
SIGSTOP (19) → Prioridade Alterada de Processo
Administração de Ambiente Linux
Gerenciamento de Processos

Para maiores detalhes


# man signal

Abra o terminal no node Interno e inicie o ping para o node intranet


$ ping intranet

Verifique o PID do processo e pause sua execução


# pidof ping
# pkill -19 ping
Administração de Ambiente Linux
Gerenciamento de Processos

Na aba do ping verifique o serviço parado


$ jobs

Libere o job do ping


# kill -18 `pidof ping`

Encerre o processo e inicie uma janela do vim


# kill -15 `pidof ping`
# vim
Administração de Ambiente Linux
Gerenciamento de Processos

Coloque o serviço em background teclando CTRL + z e execute o


zenmap colocando o serviço em segundo plano
CTRL + z
# zenmap &

Tire o zenmap da execução em background e depois retorne


# fg 2

Mate o processo do zenmap


# kill -9 `pgrep zenmap`
Administração de Ambiente Linux
Gerenciamento de Processos

Execute o mtr e pare o serviço em background com CTR + z


# mtr uol.com
CTRL + z

Verfique o status do job


# jobs

Coloque o serviço em execução background e verifique o status


# bg 1 && jobs
Administração de Ambiente Linux
Gerenciamento de Processos

Mate todos os processos relacionados ao mtr


# killall mtr

Verfique o status do job


# jobs

Coloque o serviço em execução background e verifique o status


# bg 1 && jobs
Administração de Ambiente Linux
Gerenciamento de Processos

Acesse o host storage e execute o comando ping sem interrupção


no modo background com 10000 pacotes para o gateway

$ nohup ping 10000 gateway.asf.com &

Encerre a conexão e verifique via tty se a execução continua

$ exit tty1
$ tail -f nohup.out tty2
Administração de Ambiente Linux
Gerenciamento de Processos

Saia do tail com CTRL + c, acesse o tty1 novamente, suba para root
e verifique a prioridade do processo ping
CTRL + c
$ su -
# top

Mude a prioridade do ping para -15


$ renice -15 -p `pgrep ping`
Administração de Ambiente Linux
Gerenciamento de Processos

Execute uma auditoria de pacotes rodando o processo com


prioridade máxima em background
# nice --20 rpm -Va > auditoria_rpm.txt &

Confirme a prioridade alterada na execução


# top

Verifique o arquivo gerado


# less auditoria_rpm.txt &

Você também pode gostar