===== Introdução =====
Para a administração eficiente de servidores Linux, especialmente em ambientes que exigem alta performance e confiabilidade, é fundamental monitorar constantemente o uso de **recursos do sistema** como **CPU**, **memória**, **disco** e **I/O**. Ferramentas como **`mpstat`**, **`iostat`**, **`iotop`** e **`vmstat`** fornecem informações detalhadas que permitem identificar gargalos e otimizar o desempenho do sistema.
- **`mpstat`**: Focado em monitorar o uso de CPU, exibindo estatísticas por núcleo e interrupções.
- **`iostat`**: Fornece uma visão detalhada sobre o uso de disco e desempenho de I/O, incluindo informações sobre latência.
- **`iotop`**: Exibe o uso de I/O de disco por processo, ajudando a identificar quais tarefas estão consumindo mais recursos de I/O.
- **`vmstat`**: Monitora o uso geral de recursos do sistema, incluindo CPU, memória, swap e processos de I/O.
Com essas ferramentas, administradores de sistemas podem tomar decisões informadas para ajustar a alocação de recursos, melhorar a eficiência e detectar possíveis falhas antes que impactem o desempenho do servidor. Esta lista apresenta exemplos de comandos organizados por níveis de complexidade, desde monitoramento básico até análises especializadas, permitindo uma visão completa do comportamento do sistema.
===== Exemplos dos Comandos mpstat, iostat, iotop e vmstat =====
==== Nível Básico ====
=== mpstat (Monitoramento de CPU) ===
* **Monitorar o uso da CPU:**
- mpstat
- Exibe o uso da CPU para todos os processadores, mostrando porcentagens de tempo de uso em diferentes modos (usuário, sistema, idle).
* **Monitorar o uso da CPU em intervalos de 1 segundo:**
- mpstat 1
- Atualiza as estatísticas de uso da CPU a cada 1 segundo.
* **Exibir a utilização de cada núcleo da CPU:**
- mpstat -P ALL
- Mostra a utilização individual de cada núcleo do processador.
=== iostat (Monitoramento de Disco) ===
* **Exibir estatísticas básicas de CPU e disco:**
- iostat
- Exibe as estatísticas de uso do CPU e dos discos conectados ao sistema.
* **Monitorar a utilização de disco em intervalos de 1 segundo:**
- iostat 1
- Atualiza as estatísticas de disco a cada 1 segundo.
* **Exibir uso de disco por dispositivo:**
- iostat -d
- Mostra as estatísticas de uso de disco para cada dispositivo de armazenamento conectado.
=== iotop (Monitoramento de I/O de Disco por Processo) ===
* **Exibir uso de I/O de disco por processo:**
- sudo iotop
- Exibe em tempo real o uso de I/O de disco por cada processo.
* **Exibir apenas processos com I/O ativo:**
- sudo iotop -o
- Mostra apenas processos que estão atualmente utilizando I/O de disco.
=== vmstat (Monitoramento de Sistema) ===
* **Exibir estatísticas básicas de memória, swap e I/O:**
- vmstat
- Mostra um resumo do uso de CPU, memória, swap, e I/O.
* **Atualizar estatísticas a cada 1 segundo:**
- vmstat 1
- Atualiza as estatísticas do sistema em intervalos de 1 segundo.
* **Mostrar uma única amostra de dados de sistema:**
- vmstat -n
- Exibe uma única linha de estatísticas, útil para verificações rápidas.
==== Nível Intermediário ====
=== mpstat (Monitoramento de CPU) ===
* **Monitorar a utilização de um núcleo específico:**
- mpstat -P 0 1
- Exibe o uso do primeiro núcleo da CPU, atualizado a cada 1 segundo.
* **Exibir estatísticas estendidas da CPU:**
- mpstat -u 1 5
- Atualiza a utilização de CPU detalhada a cada 1 segundo, por 5 vezes, mostrando dados de tempo de sistema, usuário, e interrupções.
=== iostat (Monitoramento de Disco) ===
* **Exibir estatísticas detalhadas de CPU e disco em intervalos:**
- iostat -c 1 5
- Exibe estatísticas detalhadas de uso de CPU e disco a cada 1 segundo, repetindo 5 vezes.
* **Mostrar uso de disco para uma partição específica:**
- iostat -p /dev/sda
- Exibe as estatísticas de uso de disco apenas para a partição `/dev/sda`.
* **Exibir uso de disco e estatísticas de rede:**
- iostat -x
- Mostra estatísticas estendidas de I/O por dispositivo e latência de disco.
=== iotop (Monitoramento de I/O de Disco por Processo) ===
* **Exibir uso de I/O por processos e threads:**
- sudo iotop -P
- Exibe tanto os processos quanto as threads consumindo I/O de disco.
* **Mostrar uso de I/O cumulativo por processo:**
- sudo iotop -a
- Exibe o uso cumulativo de I/O por cada processo desde o início do monitoramento.
=== vmstat (Monitoramento de Sistema) ===
* **Monitorar o uso de memória e swap em intervalos:**
- vmstat 5 10
- Atualiza as estatísticas do sistema a cada 5 segundos por 10 vezes, exibindo informações de memória e swap.
* **Exibir estatísticas de I/O, CPU e sistema:**
- vmstat -D
- Exibe estatísticas detalhadas de disco, I/O e tempo de interrupção do sistema.
==== Nível Avançado ====
=== mpstat (Monitoramento de CPU) ===
* **Monitorar interrupções e softirqs por núcleo:**
- mpstat -I CPU
- Exibe as interrupções de hardware e software (softirqs) para cada núcleo de CPU.
* **Monitorar o tempo de espera da CPU para I/O:**
- mpstat -u -P ALL 1
- Monitora o tempo gasto pela CPU em espera de I/O (I/O wait) para todos os núcleos da CPU.
=== iostat (Monitoramento de Disco) ===
* **Exibir estatísticas de dispositivos LVM ou RAID:**
- iostat -x -m /dev/mapper/vg0-lv0
- Mostra estatísticas detalhadas de I/O para volumes gerenciados por LVM ou RAID.
* **Monitorar o uso de disco e CPU em KB/s:**
- iostat -k 1 10
- Atualiza as estatísticas de uso de disco e CPU em **KB/s**, a cada 1 segundo, por 10 vezes.
=== iotop (Monitoramento de I/O de Disco por Processo) ===
* **Monitorar o uso de I/O de disco com prioridade de I/O:**
- sudo iotop -O
- Exibe as operações de I/O de disco com suas prioridades de I/O, útil para ajustar a prioridade de tarefas.
* **Listar a quantidade de swap utilizada por cada processo:**
- sudo iotop -o -s
- Exibe a quantidade de memória swap utilizada pelos processos que estão executando I/O.
=== vmstat (Monitoramento de Sistema) ===
* **Exibir informações sobre falhas de página (page faults):**
- vmstat -s
- Mostra estatísticas detalhadas sobre o sistema, incluindo falhas de página e informações sobre swap.
* **Monitorar estatísticas de sistema com prioridade de I/O:**
- vmstat -p
- Monitora o sistema com foco nas estatísticas de prioridade de I/O.
==== Nível Especializado ====
=== mpstat (Monitoramento de CPU) ===
* **Monitorar interrupções específicas e interrupções por dispositivo:**
- mpstat -I SUM 1
- Monitora todas as interrupções (hardware e software) no sistema, com uma visão geral.
* **Exibir uso de tempo real por processos de hardware (NUMA):**
- mpstat -N ALL
- Mostra a utilização da CPU em sistemas com várias regiões de memória **NUMA** (Non-Uniform Memory Access).
=== iostat (Monitoramento de Disco) ===
* **Monitorar latência de disco detalhada com histogramas:**
- iostat -x -y 1 5
- Monitora o tempo médio de serviço e o tempo de espera de disco em detalhes.
* **Exibir a média de espera de I/O em microssegundos:**
- iostat -m -t 1
- Exibe estatísticas de espera de I/O em microssegundos.
=== iotop (Monitoramento de I/O de Disco por Processo) ===
* **Monitorar processos com alto uso de swap e disco:**
- sudo iotop -o -p
- Exibe processos que estão utilizando swap em conjunto com I/O de disco, permitindo identificar gargalos.
* **Filtrar processos que atingem o limite de I/O:**
- sudo iotop -n 20 -b
- Mostra apenas os 20 processos mais intensivos em I/O de disco.
=== vmstat (Monitoramento de Sistema) ===
* **Analisar detalhes sobre o impacto de falhas de página e swapping:**
- vmstat -p /dev/sda
- Exibe estatísticas detalhadas de falhas de página e atividade de swap relacionadas a um dispositivo específico.
* **Monitorar falhas de página, swapping e estatísticas de sistema em tempo real:**
- vmstat -f -a 1
- Exibe estatísticas detalhadas sobre falhas de página e swapping em tempo real.