Diagnóstico de Desempenho em Sistemas Linux

Otimização e Monitoramento de Desempenho no Linux

Ao analisar problemas de desempenho em ambientes Linux, é essencial focar nos recursos críticos: CPU, memória, interfaces de rede e dispositivos de armazenamento.

Ferramentas para Análise de Processos

Utilitário ps

Para visualizar informações detalhadas sobre processos, utilize o comando ps com opções personalizadas:


ps -eo pid,cmd,%cpu,%mem --sort=-%cpu | head

Para exibir a árvore de processos:


ps -ef --forest

Encontrar processos específicos por nome e listar seus PIDs:


ps -C nginx -o pid=

Monitorar continuamente os processos com maior consumo de memória:


watch -n 2 'ps -eo pid,ppid,cmd,%mem --sort=-%mem | head -n 5'

Utilitário pgrep

Pesquisar processos por critérios específicos:


pgrep -u www-data -l
pgrep -P 1234

Ferramenta top

Monitoramento em tempo real de processos e uso de recursos:


top -d 2 -u postgres

Dentro do top, use P para ordenar por CPU, M para memória, e 1 para exibir cada núcleo de CPU individualmente.

Ferramenta htop

Uma versão avançada do top com interface interativa:


htop -s PERCENT_MEM

No htop, pressione t para visualizar a árvore de processos e l para listar arquivos abertos pelo processo selecionado.

Utilitário pstree

Exibir procesoss em formato de árvore:


pstree -p -a

Ferramenta lsof

Listar arquivos abertos por processos, útil para diagnósticos de E/S:


lsof -p 4567
lsof -i :8080 -n

Recuperar arquivos excluídos acidentalmente (se ainda referenciados por processos):


lsof | grep '(deleted)'

Análise de CPU e Carga

Utilitário uptime

A carga média do sistema indica o número de processos na fila de execução. Para um sistema saudável, a carga por núcleo de CPU deve ser inferior a 3.


uptime

Monitoramento de Memória

Comando free

Visualizar o uso de memória, incluindo buffers e cache:


free -h

Para limpar caches de memória (use com cautela em produção):


sync
echo 3 > /proc/sys/vm/drop_caches

Ferramenta pmap

Exibir o mapeamento de memória de um processo específico:


pmap -x 8901

Utilitário vmstat

Monitorar estatísticas de memória virtual e atividade do sistema:


vmstat 2 5

Campos importantes: r (processos executáveis), b (processos bloqueados), si/so (swap in/out).

Análise de Dispositivos de Armazenamento

Ferramenta iostat

Avaliar o desempenho de E/S de discos:


iostat -dx 3

Utilitário iotop

Monitorar a E/S de processos individualmente:


iotop -o

Monitoramento de Rede

Ferramenta iftop

Visualizar o tráfego de rede em tempo real por interface:


iftop -i eth0

Utilitário nload

Exibir a taxa de transferência de rede em gráficos simples:


nload enp0s3

Ferramentas de Monitoramento Integrado

Utilitário dstat

Combinar estatísticas de CPU, memória, disco e rede em uma saída:


dstat -cdnm

Ferramenta glances

Monitoramento abrangente com suporte a cliente-servidor:


glances -s  # Modo servidor
glances -c 192.168.1.10  # Modo cliente

Ferramenta perf

Coletar dados de desempenho a nível de hardware e software:


perf stat -a sleep 5
perf list

Técnicas de Otimização

Afinidade de CPU

Vincular processos a núcleos específicos para reduzir trocas de contexto e melhorar cache:


taskset -c 0,1 ./meu_aplicativo

Ajuste de Prioridade de Processos

Modificar a prioridade de execução usando nice e renice:


nice -n 10 ./tarefa_pesada
renice -p 1234 -n -5

Otimização de Parâmetros de Rede TCP

Ajustar parâmetros no arquivo /etc/sysctl.conf para melhorar desempenho de rede:


net.ipv4.tcp_fin_timeout = 2
net.ipv4.tcp_tw_reuse = 1
net.ipv4.tcp_max_syn_backlog = 16384
net.core.somaxconn = 16384

Aplicar alterações com:


sysctl -p

Configuração de Regras de Firewall

Consolidar regras do iptables para reduzir sobrecarga de processamento:


iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Tags: Linux desempenho Monitoramento processos CPU

Publicado em 6-4 00:03 por Thomas