Compartilhar via


Parte 3.2 - Gerenciadores de tarefas do Linux, top e htop

Aplica-se a: .NET no Linux

Este artigo apresenta como usar top e htop ferramentas de linha de comando para monitorar processos.

Pré-requisitos

Como nas partes anteriores, esta parte está estruturada para colocar mais ênfase na teoria e nos princípios a serem seguidos quando você começar a solucionar problemas. Não tem nenhum pré-requisito. No entanto, você deve ter os seguintes itens já configurados se tiver seguido todas as etapas deste treinamento até agora:

  • O Nginx tem dois sites:
    • O primeiro site escuta solicitações usando o cabeçalho de host myfirstwebsite (http://myfirstwebsite) e roteia as solicitações para o aplicativo ASP.NET Core de demonstração que está escutando na porta 5000.
    • O segundo site escuta solicitações usando o cabeçalho de host buggyamb (http://buggyamb) e roteia as solicitações para o segundo aplicativo com bugs de amostra do ASP.NET Core que está escutando na porta 5001.
  • Ambos os aplicativos ASP.NET Core estão sendo executados como serviços que reiniciam automaticamente quando o servidor é reinicializado ou os aplicativos param de responder ou falham.
  • Um firewall local do Linux é habilitado e configurado para permitir tráfego SSH e HTTP.

Objetivo desta parte

Ao solucionar um problema de desempenho, talvez seja necessário monitorar o uso de CPU e memória de um processo para entender como seu consumo de recursos evolui ao longo do tempo. No Windows, você pode usar o Gerenciador de Tarefas para fazer isso. O Linux possui várias ferramentas que visam alcançar a mesma coisa.

Esta parte examinará as ferramentas de linha de tophtop comando e para monitorar processos.

top

Para abrir o equivalente do Gerenciador de Tarefas no Linux, execute o top comando.

Captura de tela do comando superior.

Neste exemplo, você pode observar no primeiro processo listado para PID 19933 que o processo exibe alto uso da CPU e o uso da memória também é alto.

Selecionar e desmarcar colunas

Para adicionar ou remover colunas na exibição fornecida pela top ferramenta, selecione F enquanto executa a ferramenta. As colunas marcadas por um asterisco (*) são as selecionadas para exibição. Use as teclas de seta para percorrer as colunas disponíveis e use a barra de espaço para selecionar ou desmarcar as colunas. Em seguida, selecione Esc para sair.

Captura de tela das informações das colunas.

As alterações serão salvas para sua conta de usuário. Na próxima vez que você executar topo , verá as colunas selecionadas.

Filtrar a saída por usuários

Para poder direcionar cenários problemáticos de consumo de recursos, é importante saber como filtrar a top saída. Um dos métodos mais comuns é filtrar processos por nome de usuário. Você pode selecionar U e digitar o nome de usuário. A captura de tela a seguir mostra a top ferramenta filtrando os instantâneos de processo disponíveis para o usuário www-data.

Captura de tela das informações dos usuários.

Ao selecionar Enter, você verá os processos que são executados pelo usuário fornecido (o usuário www-data neste exemplo).

Captura de tela das informações do usuário.

Ao inspecionar a saída da exibição filtrada top , você pode ver que dois dos processos são processos .NET. Esses dois processos executam os dois aplicativos ASP.NET Core, enquanto os outros dois processos pertencem ao Nginx.

Você pode usar filtros ao executar o top comando diretamente. Por exemplo, se você executar o top -u www-data comando, ele produzirá a mesma saída que você obteria se abrisse a top ferramenta e selecionasse U para filtrar por usuário.

Remover processos ociosos

Selecione I ou execute o top -i comando para filtrar a top saída para mostrar apenas os processos que estão consumindo CPU. A captura de tela a seguir mostra a saída do top -i -u www-data comando. Observe que a top saída oculta os processos ociosos, embora haja quatro processos que foram iniciados usando a conta de usuário www-data. Somente o processo que tem PID=19933 consome CPU.

Captura de tela das informações de remoção.

Selecione I novamente para alternar a opção e mostrar os processos ociosos também.

Processos de eliminação

Para matar ou encerrar um processo, você precisa enviar um sinal de eliminação para o processo. Você deve se lembrar que usamos o sudo kill -9 <PID> comando anteriormente para encerrar um processo. Você também pode eliminar processos usando topo . Selecione K para encerrar um processo enquanto top estiver em execução e digite o PID do processo que você deseja eliminar.

Captura de tela do comando kill.

Depois de selecionar Enter, top solicita o tipo de sinal. Selecione Enter mais uma vez para enviar o sinal "encerrar" (15/sigterm).

Captura de tela do comando kill top.

Após alguns segundos, você verá que o processo para PID 122632 está ausente da lista. Lembre-se que nas listas, o processo "122632" corresponde ao aplicativo BuggyAmb ASP.NET Core. Como ele foi configurado para iniciar automaticamente, você verá que um novo processo .NET com um novo PID é iniciado após o desligamento.

topo

O Htop é um visualizador de processos e um aplicativo em modo de texto para monitoramento do sistema em tempo real, semelhante ao top. É fácil de usar e exibe uma lista completa dos processos em execução.

A htop ferramenta é pré-instalada na distribuição do Ubuntu Linux que é usada para instalar o servidor virtual para este curso. Se htop não estiver instalado em sua distribuição Linux, você poderá usar os gerenciadores de pacotes no Linux para instalá-lo. (Veja Parte 1.3 - Instalar o .NET no Linux para obter detalhes.)

Para iniciar a ferramenta, execute o htop comando. Você verá uma saída colorida semelhante à seguinte:

Captura de tela do comando kill htop.

Observação

A linha inferior indica as teclas de função que você pode usar. Selecione F6 para classificar por opções diferentes, use as teclas de seta para selecionar a PERCENT_MEM coluna e selecione Enter. Isso classifica os processos por uso de memória.

Captura de tela do uso de memória.

Assim como no comando, você pode usar atalhos de top teclado para várias funções. Por exemplo, selecione U para selecionar o nome de usuário em uma lista.

Captura de tela das informações do nome do usuário.

No entanto, há algo confuso na htop saída. Com base na saída dos últimos exemplos, você deve esperar ver quatro processos para o usuário www-data. No entanto, vemos que há muito mais entradas. O que pode estar causando esse comportamento?

A diferença na saída ocorre porque htop mostra os processos e seus threads por padrão. A menos que você queira ver os threads, recomendamos que você sempre desabilite a exibição de thread para tornar a saída mais clara. Para desabilitar a exibição de thread e ver apenas os processos, selecione Shift+H. A captura de tela a seguir mostra os processos sem threads.

Captura de tela das informações do processo.

Se você tiver que encerrar um processo, selecione o processo usando as teclas de seta, selecione F9 e, em seguida, selecione Enter para enviar o sinal de "encerramento".

Captura de tela das informações de encerramento.

Essa visão geral sucinta deve permitir que você entenda quais processos estão sendo executados e consumindo recursos em seu sistema. Para sair htopdo , selecione F10 ou Ctrl+C.

Próximas etapas

A próxima parte desta série (Parte 3.3 – Depuradores, despejos de memória e coleta de despejos de memória) discute depuradores e arquivos de despejo.