Fique por dentro das novidades do seu tema preferido

Aprenda a criar sites incríveis com facilidade

Use o poder da internet para divulgar o seu negócio

Inspire-se com as estratégias de grandes empresas

Conteúdos variados para alavancar os resultados do seu projeto

A confirmação da sua inscrição foi enviada para o seu e-mail

Agradecemos sua inscrição e esperamos que você aproveite nossos conteúdos!

Aprenda nesse artigo como monitorar e encerrar processo num servidor Linux! Tempo estimado de solução: 11min

Todo servidor tem constantemente processos rodando e saber monitorar e encerrar esses processos é muito útil para um administrador. Nesse artigo vamos destrinchar a respeito dos processos num servidor Linux e como monitorá-los e encerrá-los. Vamos lá?

O que é um processo em um servidor?

No Linux, um processo é qualquer instância ativa de um programa. Basicamente, um programa é definido como um arquivo executável e que esteja armazenado em seu servidor. Sempre que se executa um programa, é criado um processo vinculado a ele.

Uma das propriedades de um processo é seu sistema de identificação, que os numera conforme eles são executados no servidor em ordem crescente. Todo processo possuí uma identificação individual chamada de PID (Process ID). Veremos mais a frente nesse artigo como encontrar o PID dos seus processos.

Como monitorar os processos ativos no servidor?

Existem diversas formas de monitorar processos em um servidor, mas uma da formas mais utilizadas é através do comando top (Table Of Process). Com esse comando você consegue visualizar em uma tabela diversas informações a respeito dos processos ativos no servidor em tempo real. Confira como utilizar o top:

  1. Realize acesso ao terminal do seu Servidor via WHM ou SSH.
  1. Em seguida, insira o seguinte comando no terminal:

$ top

Deve aparecer uma tela semelhante a essa:

comando top usado para monitorar processos num servidor

Nessa tela temos diversas informações a respeito dos processos do servidor, partindo da primeira linha o top informa sobre o uptime e load average:

  • 10:03:49 – horário atual.
  • up 43 days, 18:48 – o tempo total em que o servidor está ligado.
  • 0 users – número de usuários conectados no momento.
  • load average: 0.05, 0.04, 0.05 – consumo de CPU médio para gerir os processos; entende-se que o valor 1.00 representa que está sendo consumido 100% de uma CPU do servidor. No primeiro campo está a média de consumo no último minuto, no segundo campo, os últimos 5min e no terceiro campo, os últimos 15min.

Já na segunda linha temos algumas informações sobre tasks:

  • Tasks, 147 total... – número de processos ativos e em seguida os status delas.
  • running – mostra quantos processos estão realizando requisições ao servidor e executando normalmente com acesso a CPU.
  • sleeping – mostra quantos processos estão aguardando recursos.
  • stopped – mostra quantos processos estão terminando e liberando recursos; estes enviam uma mensagem de terminação aos processos pai.
  • zombie – mostra quantos processos estão aguardando o processo pai para liberá-los; eles podem se tornar órfãos quando um processo pai é encerrado primeiro.

Geralmente processos do tipo zombie representam um processo finalizado abruptamente. Possuir alguns processos nesse status costuma não ser nenhum problema, mas é bom evitá-los.

Na terceira linha o top traz informações da %CPU(s):

  • us – é a porcentagem de tempo gasto executando processos de usuários.
  • sy – é a porcentagem de tempo gasto executando o kernel.
  • ni – é a porcentagem de tempo gasto executando tarefas cujo nice foi configurado manualmente. (nice representa a prioridade de um processo, veremos mais a frente)
  • id – é a porcentagem de tempo gasto inativo.
  • wa – é a porcentagem de tempo gasto esperando. 
  • hi – é a porcentagem de tempo gasto gerenciando interrupções de hardware.
  • si – é a porcentagem de tempo gasto gerenciando interrupções de software.
  • st – é a porcentagem de tempo gasto para a CPU virtual acessar a CPU física.

Na quarta linha o top informa sobre utilização da memória, sendo MiB Mem referente a memória física utilizada, com o valor baseado na memória RAM instalada no sistema:

  • total – mostra o total de memória RAM do servidor.
  • free – mostra o total de memória disponível.
  • used – mostra o total de memória consumida.
  • buff/cache – mostra o total de memória sendo utilizado com dados temporários ou em cache.

Na quinta e última linha, o top mostra informações da memória swap utilizada pelo servidor. Essa memória é utilizada pela RAM em situações que é mais rápido armazenar dados nela do que na memória física do sistema.

  • total – mostra o total de memória swap do servidor.
  • free – mostra o total de memória swap disponível.
  • used – mostra o total de memória swap consumida.
  • buff/cache – mostra o total de memória swap sendo utilizado com dados temporários ou em cache.

Por fim, o top traz informações a respeito dos processos que estão rodando em tempo real no servidor numa tabela. Confira abaixo o que significa cada coluna do top:

  • PID – Process ID do processo.
  • USER – o usuário dono do processo.
  • PR – prioridade do processo.
  • NI – nice do processo.
  • VIRT – quantidade de memória virtual usada pelo processo.
  • RES – quantidade de memória física usada pelo processo.
  • SHR – quantidade de memória compartilhada usada pelo processo.
  • S – status do processo. 
  • %CPU – a porcentagem de tempo dedicada da CPU para execução do processo.
  • %MEM – a porcentagem de memória da CPU utilizada para execução do processo.
  • TIME+– tempo total usado pela CPU para execução da CPU em centésimo de segundo.
  • COMMAND – o nome do comando ou do processo.

Nice vs Prioridade

No Linux existem duas propriedades que se assimilam, o nice e a priority. O nice é um valor que o usuário pode conceder a um processo para tornar sua prioridade mais alta, esse valor pode variar de -20, sendo a prioridade máxima, 0 a prioridade padrão e +19 a prioridade mínima. Esse valor vai refletir na priority do processo que via de regra segue a seguinte fórmula:

PR = 20 + NI

Além disso, existem alguns comandos dentro do top que podem ser executados, veja algum deles:

  • Shift + M – esse comando ordena em ordem decrescente os processos que estão consumindo mais memória (%MEM).
  • Shift + P – esse comando ordena em ordem decrescente os processos que estão consumindo mais tempo da CPU (%CPU).
  • U – esse comando permite que você digite um usuário do servidor e filtre seus processos.
  • Q – esse comando sai da tela do top e retorna para a linha de comando.

Para aprender mais sobre o top e diversas outras funcionalidades, confira o manual de utilização do top.

Como encerrar um processo no Linux

Existem algumas formas de se encerrar um processo, mas a mais comum é através do comando kill. Esse comando envia um sinal ao processo e dependendo do sinal enviado, o processo deve reagir de determinada forma.

Como utilizar o comando kill

Para ver o manual de utilização do kill, execute o seguinte comando:

$ man kill

Para listar todos os sinais do kill, execute o seguinte comando:

$ kill -l

comando top usado para encerrar processos num servidor

Apesar de existirem todos os sinais acima, nesse artigo vamos tratar dos sinais 9 e 15:

  • 9) SIGKILL – esse sinal encerra abruptamente um processo. Deve ser utilizado com precaução, pois, pode causar danos ao servidor quando utilizado com descuido.
  • 15) SIGKILL – esse sinal informa ao processo que ele precisa ser encerrado, mas dando o tempo dele finalizar suas últimas tarefas se necessário. O kill por padrão já utiliza o sinal 15 sem necessidade de informar o sinal.

Para encerrar um processo com o kill utilize a seguinte sintaxe:

$ kill -[número do sinal] [PID do processo]

Por exemplo, para executar de forma abrupta o processo com PID 7420, execute o seguinte comando:

$ kill -9 7420

Pronto! Agora você sabe encerrar os processos no seu servidor.

Considerações Finais

Nesse artigo você aprendeu sobre como monitorar processos de um servidor pelo comando top e também como encerrar processos com o comando kill.

Se você sentiu alguma dificuldade ou então tem alguma sugestão de algo que não foi mencionado, basta deixar aí nos comentários que no futuro podemos trazer atualizações para este artigo. Também indico esses outros materiais relacionados com este assunto:

Até a próxima! :^)

Navegue por tópicos

  • O que é um processo em um servidor?

  • Como monitorar os processos ativos no servidor?

  • Como encerrar um processo no Linux

    • Como utilizar o comando kill

  • Considerações Finais

Tags:

  • Servidor Dedicado Linux
  • Servidor VPS

Julio Pires

Analista de Conteúdo Técnico na empresa HostGator e estudante de Física na UFSC. Gosta de maratonar séries, jogar jogos clássicos, nunca nega uma partida de xadrez e busca estar sempre atualizado com o mundo da tecnologia.

Mais artigos do autor

Garanta sua presença online

Encontre o nome perfeito para seu site

www.