Administração de processos

Visualizando os Processos, e Entendo seu Status

Hoje em dia manipular processos de um SO virou quase uma profissão. :-)

O gerenciamento de processos é uma tarefa normalmente muito utilizada em servidores de banco de dados. Pois a quantidade de processos que uma aplicação como um banco gera, é de extrema importância que as prioridades sejam configuradas adequadamente.

Visualizando os processos da máquina:

ps aux | more

ps: comando

a: todos os processos de kernel u: de todos os usuários x: de todos os terminais

| more : mostrar paginando

Vamos entender agora o que cada coluna nos mostra:

user:usuário dono do processo

PID:Identificação do processo

%CPU:% de uso do processador

%mem:% de uso da memória (Memória RAM)

VSZ e RSS:Paginação (tamanho do processo)

TTY:Terminal de origem do processo ( ? processo de sistema)

STAT:R, S, D, Z e T

R – running = rodando

S – sleep = esperando

D – Deeth = morto

T – Traced = parado

Z – Zumbi = error

Variações:

< – prioridade maior que a padrão

N – prioridade menor que a padrão

T – processo em foreground

s – dono da sessão (PAI)

w – usando recurso Swap

TIME: Tempo que está ativo

COMMAND: Comando ou nome do processo

Outra opção interessante é a visualização dos processos em forma de árvore:

ps axf | more

ou

pstree

Para podermos acompanhar os processos em tempo real, podemos usar o comando top, já que o ps só nos da o status dos processos que estão no ar no momento do comando.

Planos de Execução

Trabalhar com níveis de plano de execução, pode nos ajudar por exemplo em casos que queremos executar uma aplicação e mantermos ainda o terminal livre, para continuar trabalhando no mesmo.

BACKGROUND – processo em segundo plano

FOREGROUND – processo em primeiro plano

& – inicia o processo em background

bg – coloca um processo já iniciado em background

fg – coloca um processo em foreground

jobs – lista processos em background

ctrl+z – para um processo que está em foreground

Exemplos

updatedb &

(inicia o updatedb em modo background, deixando o terminal livre)

jobs -l

(visualizando os processos em background do terminal)

fg <PID>

(o comando fg mais o PID do processo , coloca o processo em foreground)

bg <PID>

(o comando bg mais o PID do processo, coloca o processo em backgound)

Prioridade de Processos

A escala a baixo representa os valores de prioridade que um processo pode ter:

A coluna “NI” apresenta os valores de cada processo.

Os comandos para manipular os valores de cada processo são: o nice e o renice. O nice é usado apenas para declarar a prioridade de um processo quando o mesmo for iniciado, e o renice é o comando utilizado para trocar a prioridade de um processo já iniciado.

Exemplos

 nice -n -20 man ls

(inicia o comando man ls, com prioridade -20)

ps lax | grep "man ls"

(visualiza o processo “man ls”)

renice -p 10 <PID>

(troca a prioridade do processo para o valor “10”)

Finalizando Processos

Não é muito raro processos darem erros e sermos obrigados a finaliza-los. Para matar-mos um processo não é nada lá tão complicado :P

kill <flag> <PID>

-1 = (reload no processo)

-15 = (termina um processo)

-9= ( mata um processo) obs: sem dó!

. Matando processos por usuário:
kill -9 `lsof -t -u ze`

(mata todos os processos do usuário “ze”)

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: