Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
- O primeiro site escuta solicitações usando o cabeçalho de host myfirstwebsite (
- 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 top
htop
comando e para monitorar processos.
top
Para abrir o equivalente do Gerenciador de Tarefas no Linux, execute o top
comando.
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.
As alterações serão salvas para sua conta de usuário. Na próxima vez que você executar top
o , 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.
Ao selecionar Enter, você verá os processos que são executados pelo usuário fornecido (o usuário www-data neste exemplo).
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.
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 top
o . Selecione K para encerrar um processo enquanto top
estiver em execução e digite o PID do processo que você deseja eliminar.
Depois de selecionar Enter, top
solicita o tipo de sinal. Selecione Enter mais uma vez para enviar o sinal "encerrar" (15/sigterm
).
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:
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.
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.
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.
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".
Essa visão geral sucinta deve permitir que você entenda quais processos estão sendo executados e consumindo recursos em seu sistema. Para sair htop
do , 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.