Troubleshooting Usando Vmstat, Iotop e Stress
Tags: linux, maintenance, cloud, systems
Published: 2024-06-09 05:16:07

Neste artigo iremos falar sobre os comandos vmstat, stress e iotop para verificação da saúde e troubleshooting de servidores Linux. São ferramentas muito usadas pelos administradores de sistemas para garantir a saúde e eficiência dos sistemas em ambientes críticos e de produção.

#Vmstat
O **vmstat** (virtual memory statistics) é uma ferramenta do pacote procps que fornece uma foto abrangente do desempenho do sistema, trazendo informações sobre processos em execução, memória, swap, E/S de disco e dados sobre uso de CPU.
Sua sintaxe é simples, basta digitar vmstat e ele já trará informações sobre o sistema.

Os argumentos usados são **n** (número) onde ele exibe uma saída atualizada a cada n segundos. Ex.: vmstat 5

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zud4ez4rkqoehykn2i3f.png)

**-m **ele irá exibir informações do slabinfo, se o seu sistema tiver suporte para ele. Para usar esse argumento, você precisa estar usando permissões de sudo ou como root(não recomendado). Ex.: vmstat -m

**-D** para exibir informações de atividade do disco. Ex: vmstat -D

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2zjuuvugsytw21g0jck5.png)

**-t** para anexar carimbo de data/hora na saída do comando para efeitos de log/auditoria. Ex.: vmstat 3 -t

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/i43jdghdcquykdv4swjy.png)

**-p** /nomedodisco - Para exibir informações de E/S por partição, por exemplo.: **vmstat -p /dev/sda**

#Iotop 

iotop é uma ferramenta interativa como o htop onde exibe informações sobre o uso de E/S de discos no Linux. Ele mostra os desempenho de gravação e leitura em tempo real, mostrando os processos e usuários que estão executando gravações e leituras no disco tanto com desempenho total como por cada processo em execução. Com iotop é possível identificar processos que podem estar causando sobrecarga de leitura ou gravação no disco, degradando o desempenho do sistema ou até mesmo provocando danos no disco por sobrecarga.

Para usar o comando, basta digitar iotop.:

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j3czdapv5ljn3nhzkoi1.png)

#Stress 

Este comando é usado para verificar o quanto é confiável o sistema simulando cargas de trabalho. Você pode simular cargas de consumo de CPU, Disco e Memória de forma a verificar o tão resiliente é o seu sistema.

A sintaxe do comando é **stress** e os principais argumentos são.:

**--cpu númerodecpu** -> Para simular cargas de trabalho que usem CPU basta digitar stress --cpu 8 por exemplo para simular uma carga que faça uso de 8 processadores.

**--io númerodeio** -> Para simular cargas de trabalho que usam E/S, usa-se o stress --io 6 por exemplo.

**--vm númerodeworkers** -> Para simular a criação de VMs no seu ambiente, digite stress --vm 4. Se usado com o argumento --vm-bytes você pode definir quanto cada VM irá usar de memória, por exemplo stress --vm 4 --vm-bytes 512M para criar 4 VMs com 512MB de memória cada uma.

O **stress** é usado também para testes em equipamentos pessoais ou corporativos para validar se eles são capazes de suportar as tarefas para quais foram projetados.

Para maiores informações sobre esses comandos basta digitar a opção --help via linha de comando.

**Referências.:**

https://www.redhat.com/sysadmin/linux-commands-vmstat
https://www.guiafoca.org/guiaonline/intermediario/ch07s12.html
https://www.tecmint.com/iotop-monitor-linux-disk-io-activity-per-process/
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux_for_real_time/8/html/optimizing_rhel_8_for_real_time_for_low_latency_operation/assembly_stress-testing-real-time-systems-with-stress-ng_optimizing-rhel8-for-real-time-for-low-latency-operation
https://www.golinuxcloud.com/stress-command-in-linux/