Exibição de Tarefas no Linux

LinuxBeginner
Pratique Agora

Introdução

Monitorar os processos do sistema é uma habilidade crucial para usuários Linux e administradores de sistemas. Compreender quais processos estão em execução e como eles consomem recursos permite manter a estabilidade e o desempenho do sistema.

Neste laboratório, você aprenderá a usar o comando top, uma ferramenta poderosa para monitoramento em tempo real dos processos do sistema Linux. O comando top fornece informações detalhadas sobre o uso da CPU, consumo de memória e outras métricas importantes do sistema. Ao dominar este comando essencial, você será capaz de identificar processos que consomem muitos recursos e gerenciar efetivamente os recursos do seu sistema Linux.

Introdução ao Comando top

O comando top é um utilitário Linux fundamental que exibe uma visão dinâmica e em tempo real dos processos em execução no seu sistema. O nome "top" refere-se ao seu comportamento padrão de mostrar os processos que consomem mais CPU, os "top" processos.

Vamos começar navegando para o seu diretório do projeto e explorando o uso básico do comando top:

cd ~/project

Agora, execute o comando top:

top

Ao executar este comando, você deverá ver uma exibição interativa semelhante à seguinte:

top - 14:25:30 up 2 days,  3:45,  1 user,  load average: 0.15, 0.20, 0.25
Tasks: 105 total,   1 running, 104 sleeping,   0 stopped,   0 zombie
%Cpu(s):  2.0 us,  1.0 sy,  0.0 ni, 97.0 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
MiB Mem :   4096.0 total,   2841.3 free,    845.2 used,    409.5 buff/cache
MiB Swap:   2048.0 total,   2048.0 free,      0.0 used.   2970.5 avail Mem

  PID USER      PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND
 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox
 2345 labex     20   0   78912  23456  13204 S   0.7   0.6   0:12.34 terminal
 3456 root      20   0   43528   5424   4356 S   0.3   0.1   0:05.67 sshd
  ... (more processes)

A exibição do top consiste em duas seções principais:

  1. Área de Resumo (primeiras 5 linhas): Fornece informações em todo o sistema, incluindo:

    • Tempo de atividade do sistema (uptime) e médias de carga (load averages)
    • Estatísticas de tarefas (total, em execução, em espera, etc.)
    • Porcentagens de uso da CPU
    • Uso de memória (RAM e Swap)
  2. Lista de Processos (tabela abaixo do resumo): Lista os processos em execução com detalhes como:

    • PID: ID do processo
    • USER: O proprietário do processo
    • PR: Prioridade
    • NI: Valor Nice
    • VIRT: Memória virtual usada
    • RES: Memória residente usada
    • %CPU: Porcentagem de uso da CPU
    • %MEM: Porcentagem de uso da memória
    • COMMAND: Nome do comando

A exibição é atualizada automaticamente a cada 3 segundos por padrão. Para sair do comando top, basta pressionar a tecla q.

Agora, vamos capturar um snapshot estático dos processos usando a opção -n 1. Isso diz ao top para atualizar apenas uma vez e depois sair:

top -n 1 > ~/project/top_snapshot.txt

Este comando cria um arquivo chamado top_snapshot.txt no seu diretório do projeto, contendo um snapshot dos processos atuais do sistema. Vamos verificar o conteúdo do arquivo:

cat ~/project/top_snapshot.txt

Você deve ver uma saída semelhante ao que foi exibido na sessão interativa do top, mas como um arquivo de texto estático.

Interpretando a Saída do top

Agora que você tem um snapshot dos processos do sistema, vamos analisar as informações para entender o que ela nos diz sobre o uso de recursos do sistema.

Abra o arquivo top_snapshot.txt usando o editor de texto nano:

nano ~/project/top_snapshot.txt

Neste arquivo, você pode ver as mesmas informações exibidas no comando top interativo. Vamos nos concentrar em identificar o processo que mais utiliza a CPU na lista.

Olhe para a seção da lista de processos (abaixo da área de resumo) e encontre o processo com o valor mais alto na coluna %CPU. Isso indica o processo que estava consumindo mais CPU no momento em que o snapshot foi tirado.

Por exemplo, se você vir uma linha como esta:

 1234 labex     20   0  562340  42340  28456 S   2.0   1.0   0:30.25 firefox

Isso mostra que o processo com PID 1234 (firefox), de propriedade do usuário "labex", estava usando 2,0% da CPU e 1,0% da memória.

Anote as seguintes informações para o processo com o maior uso da CPU:

  1. PID (Process ID - ID do Processo)
  2. USER (o proprietário do processo)
  3. %CPU (Porcentagem de uso da CPU)
  4. %MEM (Porcentagem de uso da memória)
  5. COMMAND (O comando ou programa em execução)

Para sair do nano, pressione Ctrl+X.

Agora, crie um arquivo chamado top_analysis.txt para documentar suas descobertas:

echo "Análise do processo que mais utiliza a CPU" > ~/project/top_analysis.txt

Adicione os detalhes do processo que mais utiliza a CPU ao arquivo. Substitua os espaços reservados pelos valores reais que você observou:

echo "PID: [Substitua com PID]" >> ~/project/top_analysis.txt
echo "USER: [Substitua com USER]" >> ~/project/top_analysis.txt
echo "CPU%: [Substitua com %CPU]" >> ~/project/top_analysis.txt
echo "MEM%: [Substitua com %MEM]" >> ~/project/top_analysis.txt
echo "COMMAND: [Substitua com COMMAND]" >> ~/project/top_analysis.txt

Por exemplo, se o processo 1234 (firefox) foi o que mais utilizou a CPU, você inseriria:

echo "PID: 1234" >> ~/project/top_analysis.txt
echo "USER: labex" >> ~/project/top_analysis.txt
echo "CPU%: 2.0" >> ~/project/top_analysis.txt
echo "MEM%: 1.0" >> ~/project/top_analysis.txt
echo "COMMAND: firefox" >> ~/project/top_analysis.txt

Vamos verificar o que escrevemos no arquivo:

cat ~/project/top_analysis.txt

Isso deve exibir o conteúdo do seu arquivo de análise com os detalhes do processo que mais utiliza a CPU.

Ordenando e Filtrando Processos no top

O comando top torna-se ainda mais poderoso quando você aprende a ordenar e filtrar processos. Nesta etapa, você aprenderá como personalizar a exibição do top para se concentrar em informações específicas.

Primeiro, vamos executar o comando top interativo novamente:

top

Enquanto o top estiver em execução, você pode usar atalhos de teclado para modificar seu comportamento:

  1. Pressione M (maiúsculo) para ordenar os processos por uso de memória
  2. Pressione P (maiúsculo) para ordenar os processos por uso da CPU (padrão)
  3. Pressione T (maiúsculo) para ordenar os processos por tempo (há quanto tempo eles estão em execução)
  4. Pressione N (maiúsculo) para ordenar os processos por PID (ID do processo)

Experimente cada uma dessas opções de ordenação para ver como a lista de processos muda. Quando terminar de experimentar, pressione q para sair do top.

Agora, vamos criar um snapshot de processos ordenados por uso de memória. Usaremos o modo batch do top com opções específicas:

top -b -n 1 -o %MEM > ~/project/top_sorted_by_mem.txt

Este comando usa:

  • -b: Modo batch (não interativo)
  • -n 1: Executar apenas uma iteração
  • -o %MEM: Ordenar por uso de memória

Vamos verificar o conteúdo deste arquivo:

cat ~/project/top_sorted_by_mem.txt

Você deve ver os processos listados em ordem de uso de memória, com os processos que mais consomem memória no topo.

Em seguida, vamos filtrar os processos para mostrar apenas aqueles pertencentes à sua conta de usuário:

top -b -n 1 -u labex > ~/project/top_user_filtered.txt

A opção -u labex filtra a saída para mostrar apenas os processos de propriedade do usuário "labex". Vamos examinar este arquivo:

cat ~/project/top_user_filtered.txt

Este arquivo deve mostrar apenas os processos de propriedade do usuário "labex".

Finalmente, vamos combinar ordenação e filtragem para criar uma visualização mais específica:

top -b -n 1 -u labex -o %CPU > ~/project/top_custom.txt

Este comando mostra apenas os processos pertencentes ao usuário "labex" e os ordena por uso da CPU. Vamos verificar o resultado:

cat ~/project/top_custom.txt

Essas opções de personalização tornam o top uma ferramenta versátil para se concentrar em aspectos específicos do desempenho do sistema e do uso de recursos.

Resumo

Neste laboratório, você aprendeu a usar o comando top para monitorar e analisar processos no Linux. As habilidades que você adquiriu incluem:

  1. Executar o comando top para visualizar uma exibição em tempo real dos processos do sistema
  2. Compreender as informações exibidas na saída do top, incluindo o uso da CPU, o uso da memória e os detalhes do processo
  3. Capturar snapshots de informações do processo para análise
  4. Identificar processos que consomem muitos recursos, examinando o uso da CPU e da memória
  5. Personalizar a exibição do top por meio de opções de ordenação e filtragem

Essas habilidades são essenciais para a administração do sistema e o monitoramento de desempenho em ambientes Linux. O comando top é uma das ferramentas mais frequentemente usadas para avaliar rapidamente a integridade do sistema e identificar possíveis problemas de desempenho.

Ao dominar o comando top, você agora tem a capacidade de monitorar efetivamente os recursos do sistema, identificar processos que podem estar causando problemas de desempenho e reunir as informações necessárias para otimizar o desempenho do sistema.