Comando Vmstat do Linux

Comando Vmstat Do Linux



Neste guia, demonstraremos as várias maneiras de usar o comando “vmstat” no Linux.

Pré-requisitos:

Para executar as etapas demonstradas neste guia, você precisa dos seguintes componentes:

  • Um sistema Linux configurado corretamente. Para fins de teste, considere usar uma VM Linux .
  • Acesso a um usuário não root com privilégio sudo
  • Compreensão básica da interface da linha de comandos

Memória Virtual no Linux

A memória física, também conhecida como RAM, tem quantidade finita. O kernel é responsável por distribuir este espaço para todos os programas em execução. Todos os programas em execução (incluindo o sistema operacional) residem na RAM.







No entanto, se a demanda por memória for maior do que a memória disponível, o sistema simplesmente trava (ou o programa solicitará mais espaço de memória). Na maioria das situações, esse é um resultado indesejado. É aqui que entra a memória virtual.



Memória virtual refere-se a um espaço em disco dedicado em seu HDD/SSD que pode atuar como memória adicional em situações difíceis. Por atuar como espaço RAM (mas não realmente), é considerado “virtual”. Em sistemas UNIX/Linux, esses espaços são chamados de espaços de troca.



O kernel do Linux move os blocos de memória para o espaço de troca e os recupera de volta para a RAM conforme necessário.





O desempenho da memória virtual é definitivamente mais lento que o da memória física e é diretamente proporcional ao desempenho do dispositivo de armazenamento. Porém, em configurações específicas de hardware (usando SSD NVMe, por exemplo), o desempenho pode ser equivalente ao da RAM.

O comando Vmstat

O comando “vmstat” é uma ferramenta de monitoramento que relata diversas informações sobre a memória virtual. Está disponível em todos os sistemas Linux como parte do pacote “sysstat”.



A estrutura de comando de “vmstat” é a seguinte:

$ vmstat < opções > < atraso > < contar >

Uso Básico

Se for executado sem nenhum parâmetro, “vmstat” imprime as informações do sistema desde a última inicialização:

$ vmstat

A saída é organizada em seis segmentos:

  • processos : Estatísticas de processos em execução no momento
    • R : Número de processos ativos
    • b : Número de processos adormecidos
  • memória : Estatísticas sobre uso de memória
    • swpd : Quantidade total de memória virtual (espaço de troca)
    • livre : Espaço de troca disponível
    • lustre : A quantidade de espaço de troca usada como memória buffer temporária
    • esconderijo : Memória cache total
  • trocar : Estatísticas sobre o espaço de troca
    • Sim : Taxa de troca em
    • então : Taxa de troca
  • esse : Estatísticas de E/S
    • com um : Número de blocos recebidos do(s) dispositivo(s) de bloco
    • ser : Número de blocos enviados para bloquear dispositivos
  • sistema : Estatísticas sobre agendamento
    • em : Contagem de interrupções do sistema
    • CS : Taxa de mudanças de contexto
  • CPU : Várias estatísticas de CPU
    • nós : CPU gastando tempo em processos não-kernel
    • e : CPU gastando tempo em processos do kernel
    • eu ia : CPU gastando tempo ocioso
    • de : CPU gastando tempo aguardando a conclusão das operações de E/S
    • st : tempo de CPU usado por uma máquina virtual

Alterando a unidade de exibição

Por padrão, “vmstat” relata os valores de memória em quilobytes. Para alterar a unidade, use o “ -S ' bandeira:

$ vmstat -S < argumento >

Aqui, “vmstat” imprime os valores em megabytes.

Existem várias unidades de memória disponíveis:

  • M : 1048576 bytes (2 ^ 20 bytes)
  • eu : 1.000.000 bytes (1.000 quilobytes)
  • K : 1024 bytes (1 megabyte)
  • k : 1000 bytes (1 quilobyte)

Atualização Contínua de Estatísticas

Por padrão, “vmstat” imprime o relatório uma vez. No entanto, podemos instruir “vmstat” a fornecer relatórios contínuos em um intervalo de tempo especificado (em segundos).

A estrutura do comando é a seguinte:

$ vmstat < atraso >

Por exemplo, para obter as estatísticas atualizadas a cada 2 segundos, o comando é o seguinte:

$ vmstat 2

A saída não irá parar a menos que seja finalizada manualmente usando “Ctrl + C”.

Alternativamente, podemos especificar “vmstat” para fornecer as estatísticas para um número específico de vezes:

$ vmstat < atraso > < contar >

Por exemplo, para obter as estatísticas atualizadas a cada 2 segundos durante 5 vezes, o comando fica assim:

$ vmstat 2 5

Memória ativa e inativa

Memória ativa refere-se ao espaço de memória que está sendo usado atualmente por um processo. Por outro lado, memória inativa refere-se ao espaço de memória atribuído a um processo que não está mais em execução.

Usando “vmstat”, podemos verificar a quantidade de memórias ativas e inativas que estão sendo utilizadas:

$ vmstat -a

Aqui, as colunas “buff” e “cache” são substituídas pelas colunas “inativo” e “ativo”, respectivamente.

Memória e agendamento

Para obter um relatório mais detalhado sobre memória e agendamento, use o seguinte comando:

$ vmstat -s

Aqui:

  • Seção 1: Esta seção trata das informações básicas do sistema, como memória física total, memória ativa/inativa, memória livre/buffer/cache, etc.
  • Seção 2: Várias estatísticas de CPU
    • Tiques de CPU ruins : quantas vezes os processos de alta prioridade usaram a CPU.
    • Belos tiques de CPU : o número de vezes que os processos de prioridade mais baixa usaram a CPU.
    • Carrapatos da CPU do sistema : o número de vezes que os processos do kernel usaram a CPU.
    • Carrapatos de CPU ociosos : O número de vezes que a CPU ficou ociosa.
    • IO-espera CPU ticks : O número de vezes que a CPU aguarda pelo gerenciamento de E/S.
    • IRQ : o número de vezes que a CPU recebeu as solicitações de interrupção.
    • softirq : O número de vezes que a CPU recebeu solicitações de interrupção de software.
    • ticks de CPU roubados : o número de vezes que as VMs roubaram o tempo de CPU.
  • Seção 3: Estatísticas de paginação de memória
  • Seção 4: Contadores de eventos

Garfos desde a inicialização

Forks referem-se a processos que foram gerados por processos existentes. Para obter as estatísticas sobre contagens de bifurcações, execute o seguinte comando:

$ vmstat -f

Estatísticas de disco e partição

O comando “vmstat” também pode fornecer informações sobre a atividade do disco. Para obter um rápido resumo da atividade do disco, execute o seguinte comando:

$ vmstat -D

Para obter um relatório de atividade de disco mais detalhado (incluindo estatísticas de leitura/gravação), use o seguinte comando:

$ vmstat -d

Aqui:

    • total : Contagem total de leituras do disco
    • mesclado : contagem total de leituras do grupo
    • setores : Número total de setores lidos
    • EM : quantidade total de tempo para ler os dados do disco (em milissegundos)
  • Escreve
    • total : Contagem total de gravações em disco
    • mesclado : Contagem total de gravações do grupo
    • setores : Número total de setores escritos
    • EM : Quantidade total de tempo para gravar no disco (em milissegundos)
  • OI
    • colocar : Total de leituras/gravações atuais do disco
    • segundo : Quantidade de tempo gasto na operação contínua de leitura/gravação (em segundos)

O comando “vmstat” também pode gerar relatórios para uma partição de disco específica. Para obter o relatório de partição, use a seguinte estrutura de comando:

$ vmstat -p < identificador_partição >

Estatísticas de laje

A alocação de placas foi projetada para ser um mecanismo eficiente para a alocação de memória dos objetos. Em comparação com os mecanismos anteriores, a alocação de blocos oferece uma redução da fragmentação de memória (causada pela alocação e desalocação de memória).

Para verificar as estatísticas da laje do sistema, use o seguinte comando “vmstat”:

$ sudo vmstat -m

Observe que é necessária uma permissão de root para visualizar as estatísticas.

Aqui:

  • Cache : Nome dos dados armazenados em cache
  • Num : Número de objetos que estão ativos no cache Num
  • Total : Contagem total de objetos em um cache específico
  • Tamanho : Tamanho dos objetos em cache
  • Páginas : Contagem de páginas de memória que contêm os objetos armazenados em cache

Conclusão

Neste guia, apresentamos as várias maneiras de usar o comando “vmstat”. Além da memória virtual, “vmstat” também pode gerar relatórios sobre estatísticas de disco, garfos, placas e muito mais.

Interessado em aprender sobre outras ferramentas de monitoramento de sistema? Aprender mais sobre htop , matar , obs: , etc.

Feliz computação!