Observação:

Monitorar recursos do sistema no Oracle Linux

Introdução

Neste tutorial, você trabalhará com o Oracle Linux vmstat, mpstat e top para monitorar o uso de recursos do sistema. O monitoramento do uso dos recursos do sistema é útil para detectar problemas que possam afetar negativamente o desempenho do sistema.

Histórico

O Oracle Linux fornece ferramentas para monitorar e analisar o uso de recursos do sistema, bem como ferramentas de rastreamento para diagnosticar problemas de desempenho em vários processos e threads relacionados.

Objetivos

Do Que Você Precisa?

Um sistema cliente com o Oracle Linux 8 ou posterior instalado.

Observação: Ao usar o ambiente de laboratório gratuito, consulte Informações Básicas sobre o Oracle Linux Lab para obter instruções de conexão e outras instruções de uso.

Explorar e Usar Opções de Comando vmstat

vmstat mostra quanto memória virtual há e quanto é livre. O comando também mostra a atividade de paginação. Você pode observar page-ins e page-outs à medida que elas ocorrem no sistema.

Você pode considerar a maximização da área de exibição usando os controles Ocultar etapas e "Tela inteira" localizados na barra de tarefas, conforme mostrado nas imagens.

Ocultar etapas Ocultar etapas

Veja o vídeo abaixo para obter uma visão geral sobre vmstat.

  1. Execute o comando vmstat sem nenhuma opção.

    vmstat
    

    O comando gera um único relatório. A saída é dividida em seis seções: procs, memory, swap, io, system e cpu.

    • As duas primeiras colunas fornecem informações sobre processos:

      • r é o número de processos que estão em estado de espera. Esses são processos ociosos e aguardando execução.

      • b é o número de processos que estavam no modo de sono e foram interrompidos desde a última atualização.

    • As quatro colunas seguintes fornecem informações sobre memória:

      • swpd é a quantidade de memória virtual usada.

      • free é a quantidade de memória ociosa.

      • buff é a quantidade de memória usada como buffers.

      • cache é a quantidade de memória usada como cache.

    • As duas colunas seguintes fornecem informações sobre permuta:

      • si é a quantidade de memória trocada do disco (por segundo).

      • so é a quantidade de memória trocada para o disco (por segundo).

        Números diferentes de si e so indicam que não há memória física suficiente, o que faz com que o kernel troque memória no disco.

    • As duas colunas seguintes reportam Entrada/Saída:

      • bi é o número de blocos por segundo recebidos de um dispositivo de bloco.

      • bo é o número de blocos por segundo enviados para um dispositivo de bloco.

    • As duas colunas seguintes fornecem as seguintes informações do sistema:

      • in é o número de interrupções por segundo, incluindo o relógio.

      • cs é o número de alternâncias de contexto por segundo.

    • As cinco últimas colunas fornecem as porcentagens do tempo total da CPU:

      • us é a porcentagem de ciclos de CPU gastos em processos do usuário.

      • sy é a porcentagem de ciclos de CPU gastos em processos do sistema (kernel).

      • id é o percentual de ciclos de CPU inativos.

      • wa é a porcentagem de ciclos de CPU gastos aguardando Entrada/Saída.

      • st é o percentual de ciclos de CPU roubados de uma máquina virtual.

  2. Execute o comando vmstat 1 (numérico, e não a letra minúscula l) para exibir um relatório contínuo para cada segundo.

    vmstat 1
    
    • Para encerrar, pressione Ctrl+C.
  3. Execute o comando vmstat 7 4 para executar quatro relatórios com sete segundos de intervalo.

    vmstat 7 4
    

    A opção de contagem informa ao vmstat o número de relatórios a serem executados (4), e a opção de atraso (7) é o intervalo de tempo entre cada relatório.

  4. Execute o comando vmstat -s para exibir uma tabela de vários contadores de eventos e estatísticas de memória.

    vmstat -s
    
  5. Execute o comando vmstat -a para exibir a memória ativa e inativa.

    vmstat -a
    

    A opção -a exibe a quantidade de memória active e inativa (inact) na seção memory da saída.

  6. Execute o comando vmstat -f para exibir o número de forks desde a última inicialização.

    vmstat -f
    
  7. Execute o comando vmstat -t para adicionar um timestamp à saída.

    vmstat -t
    
  8. Execute o comando vmstat -d para exibir estatísticas de uso do disco no sistema.

    vmstat -d
    
  9. Execute o comando vmstat -p sda1 para criar um relatório em uma partição de disco específica.

    vmstat -p sda1
    

    A saída mostra um resumo da partição, incluindo o número ou leituras e gravações.

Explorar e Usar Opções de Comando mpstat

O comando mpstat é usado para coletar e exibir estatísticas de desempenho de todas as CPUs lógicas no sistema. Quando uma CPU é ocupada por um processo, ela fica indisponível para processamento de outras solicitações. Esses outros processos devem esperar até que a CPU esteja livre.

Veja o vídeo abaixo para obter uma visão geral sobre mpstat.

  1. Execute o comando mpstat sem nenhuma opção.

    mpstat
    

    A primeira linha exibe a versão do kernel Linux, o nome do host, a data atual, a arquitetura e o número de CPUs em seu sistema.

    A primeira coluna da próxima linha fornece um timestamp, com as colunas restantes definidas da seguinte forma:

    • CPU é o processador designado pelo número que começa em 0 ou pela palavra-chave all indicando que as estatísticas são calculadas como médias entre todos os processadores.

    • %user é o percentual de CPU usado durante a execução de aplicativos no nível do usuário.

    • %nice é o percentual de CPU usado durante a execução no nível do usuário com boa prioridade.

    • %sys é a porcentagem de CPU usada durante a execução no nível do sistema (kernel).

      O comando mpstat não inclui o tempo gasto no atendimento a interrupções de hardware e software.

    • %iowait é a porcentagem de tempo em que as CPUs permaneceram ociosas enquanto o sistema tinha uma solicitação de E/S de disco pendente.

    • %irq é a porcentagem de tempo gasto pelas CPUs com interrupções de hardware de serviço.

    • %soft é a porcentagem de tempo gasto pelas CPUs com interrupções de software de serviço.

    • %steal é a porcentagem de tempo gasto em espera involuntária pela CPU virtual ou CPUs enquanto o hypervisor estava atendendo a outro processador virtual.

    • %guest é a porcentagem de tempo gasta pelas CPUs para executar um processador virtual.

    • %gnice é a porcentagem de tempo gasto pelas CPUs para executar um convidado especializado.

    • %idle é a porcentagem de tempo em que a CPU foi (ou as CPUs estavam) ociosa e o sistema não tinha uma solicitação de Entrada/Saída de disco pendente.

  2. Execute o comando mpstat 2 5 para exibir a atividade da CPU a cada dois segundos para um total de cinco relatórios sobre todas as CPUs.

    mpstat 2 5
    

    A saída imprime um total de cinco vezes uma linha de informações e também imprime uma média.

  3. Execute o comando mpstat -P ALL para reportar o uso da CPU em cada CPU.

    mpstat -P ALL
    

    Essa saída imprime uma única linha de atividade para todas as CPUs e para cada CPU. Observação: mpstat também imprime a utilização média de CPU para o período especificado.

  4. Execute o comando mpstat -P ALL 2 5 para exibir a atividade da CPU a cada dois segundos nas CPUs.

    mpstat -P ALL 2 5
    

    Essa saída imprime estatísticas de utilização de CPU para cada CPU 5 vezes em um intervalo de 2 segundos. Observação: que mpstat também imprime a utilização média de CPU para o período especificado.

  5. Execute o comando mpstat -A para imprimir a utilização da CPU e interromper as estatísticas na mesma saída do comando.

    mpstat -A
    

Explore o Comando top

O comando top fornece uma visão contínua da atividade do processador em tempo real. top exibe uma lista dos processos ou tarefas mais intensivos de CPU no sistema e fornece uma interface interativa limitada para manipular processos.

Veja o vídeo abaixo para obter uma visão geral sobre top.

  1. Execute o comando top sem opções para uma view pontual da atividade da CPU.

    top
    

    Por padrão, a saída é atualizada a cada três segundos e dividida em duas seções principais.

    A seção superior exibe informações gerais, como as médias de carga durante os últimos 1, 5 e 15 minutos, o número de tarefas em execução e em espera e o uso geral de CPU e memória.

    • Use o seguinte para ativar ou desativar a saída exibida na seção superior:

      • Digite a letra minúscula l (Não numérico 1) para alternar a carga média e o tempo de atividade entre ligado.

      • Digite m para alternar e alternar o uso de memória.

      • Digite t para alternar e alternar o uso de memória.

    A seção inferior exibe uma lista classificada de processos, geralmente pelo uso da CPU, juntamente com seus números de ID de processo (PIDs) e o usuário que possui o processo. Além disso, as saídas exibem o tempo de execução e a memória que os processos usam.

    A seguir, são descritas as colunas na seção inferior:

    • PID é o ID de processo exclusivo da tarefa.

    • USER é o nome de usuário efetivo do proprietário da tarefa.

    • PR é a prioridade real da tarefa.

    • NI é o bom valor da tarefa no espaço do usuário.

      Um valor negativo significa uma prioridade mais alta; e um valor positivo significa uma prioridade mais baixa. O valor zero significa que a prioridade de uma tarefa não afeta quando é executada.

    • VIRT é a quantidade total de memória virtual usada pela tarefa.

      Esse valor inclui todos os códigos, dados e bibliotecas compartilhadas, além de páginas que foram trocadas.

    • RES é a memória física não trocada ou o tamanho residente que uma tarefa está usando.

    • SHR é a quantidade de memória compartilhada que a tarefa está usando.

      Essa memória pode ser potencialmente compartilhada com outros processos.

    • S é o status da tarefa. Há cinco estados:

      • D Sono ininterrupto

      • R Em Execução

      • S Inativo

      • T Rastreado ou interrompido

      • Z Zumbi

    • %CPU é o compartilhamento da tarefa do tempo decorrido da CPU ou do uso da CPU desde a última atualização da tela, expresso como uma porcentagem do tempo total da CPU.

    • %MEM é o compartilhamento usado atualmente pela tarefa da memória física disponível ou do uso da memória.

    • TIME+ é o tempo total de CPU que a tarefa usou desde o início.

    • COMMAND é o nome da linha de comando ou do programa usado para iniciar uma tarefa.

  2. Saia do top informando Crtl+C.

Comparar Saída de Comando de vmstat, mpstat e top

Para este exercício, você executa vários testes stress para emular cargas diferentes no sistema de laboratório e, em seguida, usa os comandos vmstat, mpstat e top para determinar o que eles reportam para os diferentes tipos de carga.

Mesmo que você execute os testes como processos em segundo plano, considere abrir janelas de terminal adicionais para suas comparações.

Cada janela adicional requer login na sua instância de laboratório usando ssh para oracle@<IP_ADDRESS_OF_COMPUTE_INSTANCE>. Onde <IP_ADDRESS_OF_COMPUTE_INSTANCE> é o endereço IP copiado da Console do Oracle Cloud.

  1. Instale a ferramenta stress.

    1. Use o comando dnf repolist para verificar o status do repositório ol8_developer_EPEL.

      dnf repolist ol8_developer_EPEL
      
      • Se o status for enabled, continue instalando os pacotes de ferramentas stress; caso contrário, continue a "ativar" o repositório.

      • Ative o repositório se o status for disabled usando o comando dnf conifg-manager.

        dnf config-manager --enable ol8_developer_EPEL
        
  2. Execute o comando dnf install para instalar os pacotes de ferramentas stress.

    dnf install stress -y
    
  3. Execute o comando stress --dry-run para exibir um exemplo da sintaxe do comando. Reserve alguns minutos e revise as opções no exemplo, junto com as outras opções de comando listadas.

    stress --dry-run
    
  4. Execute os comandos vmstat 4 4 e mpstat 4 4 para exibir uma linha de base da atividade do sistema. Especificamente, observe as porcentagens de CPU alocadas para processos de usuário e sistema (kernel). Essa coluna deve estar próxima de zero 0. Observe também a quantidade de memória livre.

    vmstat 4 4
    mpstat 4 4
    
  5. Execute o comando stress --cpu para emular um programa vinculado a computação e execute o comando em segundo plano. Esse comando gera oito processos vinculados a computação.

    stress --cpu 8 &
    
    • Pressione return para retornar ao prompt.

    • Execute o comando ps -ef para exibir os processos stress em execução. Passe a saída para grep stress.

      ps -ef | grep stress
      
  6. Execute o comando vmstat 4 10 e anote os valores reportados nas colunas associadas à utilização da CPU.

    vmstat 4 10
    

    Em alguns momentos, você deve ver as porcentagens na coluna us refletem a carga gerada por stress.

  7. Execute o comando mpstat 4 10 para avaliar a utilização de todas as CPUs.

    mpstat 4 10
    
  8. Execute o comando mpstat -P ALL 4 10 para avaliar a utilização de cada CPU.

    mpstat -P ALL 4 10
    
  9. Execute o comando top para examinar a utilização de CPU pelos processos stress.

    top
    

    Após alguns minutos, observe que os processos stress estão em execução com a prioridade mais alta. Saia do top informando um Ctrl+C.

  10. Execute o comando pkill para encerrar os processos stress.

    pkill stress
    
  11. Execute novamente os comandos vmstat 4 4 e mpstat 4 4 para exibir uma linha de base da atividade do sistema.

  12. Execute um novo comando stress e adicione as opções --vm e --vm-bytes para gerar atividade de memória no sistema.

    stress --cpu 8 --vm 8 --vm-bytes 512M &
    
  13. Execute vmstat 4 10, mpstat -P ALL 4 10 e top para avaliar a atividade de CPU e memória.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Saia do top informando Crtl+C.
  14. Use o comando pkill para encerrar os processos stress.

    pkill stress 
    
  15. Execute novamente os comandos vmstat 4 4 e mpstat 4 4 para exibir uma linha de base da atividade do sistema.

  16. Execute um novo comando stress e adicione a opção --io para gerar atividade de entrada/saída no sistema.

    stress --cpu 8 --vm 8 --vm-bytes 512M --io 8 &
    
  17. Execute vmstat 4 10, mpstat -P ALL 4 10 e top para avaliar a atividade de CPU, memória, entrada/saída.

    vmstat 4 10
    mpstat -P ALL 4 10
    top
    
    • Saia do top informando Crtl+C.

    • Use pkill para encerrar stress.

Mais Recursos de Aprendizagem

Explore outros laboratórios em docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.

Para obter a documentação do produto, visite o Oracle Help Center.