Arquitetura real · Pleno
Netflix: análise de performance Linux em 60 s
Arquitetura real em produção. Pontos centrais: Monitoramento e Observabilidade e Antipadrões de Desempenho.
Resposta curta
Arquitetura real em produção. Pontos centrais: Monitoramento e Observabilidade e Antipadrões de Desempenho. Você entra num servidor Linux que está com problema de desempenho. O post da Netflix parte de uma pergunta direta: o que checar no primeiro minuto? A Netflix tem uma grande nuvem EC2 Linux e várias ferramentas de monitoramento e observabilidade.
01 · CONTEXTO
Um servidor lento e um minuto para olhar
Você entra num servidor Linux que está com problema de desempenho. O post da Netflix parte de uma pergunta direta: o que checar no primeiro minuto? A Netflix tem uma grande nuvem EC2 Linux e várias ferramentas de monitoramento e observabilidade.
O Atlas cuida do monitoramento da nuvem e o Vector da análise de instância sob demanda. Segundo o post, essas ferramentas resolvem a maioria dos problemas, mas às vezes é preciso entrar numa instância e rodar as ferramentas padrão do Linux. É para esse momento que a lista de comandos serve.
Há uma instância Linux com problema de desempenho, e a pergunta é o que checar primeiro.
O Atlas faz o monitoramento da nuvem.
O Vector faz a análise de uma instância sob demanda.
Quando essas ferramentas não bastam, o engenheiro entra na instância e roda ferramentas padrão do Linux.
02 · OS DEZ COMANDOS
Um comando para cada recurso
O roteiro reúne dez comandos que, em sessenta segundos, dão uma visão geral do uso de recursos e dos processos em execução. A tabela liga cada comando ao recurso que ele ajuda a olhar e ao que o post destaca.
| Comando | Recurso | O que o post destaca |
|---|---|---|
| uptime | Carga geral | A média de carga inclui processos bloqueados em I/O ininterruptível |
| dmesg | tail | Erros do kernel | Procurar erros que possam causar problemas de desempenho |
| vmstat 1 | Fila de CPU | A coluna r acima da contagem de CPUs é saturação |
| mpstat -P ALL 1 | CPU por núcleo | Mostra o tempo de CPU por CPU e permite checar desequilíbrio |
| pidstat 1 | Processos | No exemplo, dois processos java respondem pelo consumo de CPU |
| iostat -xz 1 | Disco | Utilização acima de 60% costuma levar a mau desempenho; o await é o tempo médio de I/O em milissegundos |
| free -m | Memória | O Linux usa memória livre para caches e pode recuperá-la rapidamente |
| sar -n DEV 1 | Interfaces de rede | No exemplo, a recepção da eth0 chega a 22 Mbytes/s |
| sar -n TCP,ETCP 1 | TCP | Retransmissões são sinal de problema de rede ou de servidor |
| top | Visão geral | Dificulta ver padrões ao longo do tempo |
03 · EXEMPLO DE PRODUÇÃO
Seguindo os sinais num servidor real
O post ilustra os comandos com saídas de um sistema de produção. Acompanhe os sinais do exemplo, um a um, no servidor sob investigação.
O uptime mostra a média de carga de um minuto em 30, contra 19 na de quinze minutos: um aumento recente.
No vmstat, as CPUs aparecem bem acima de 90% de utilização média.
O pidstat aponta quais processos consomem a CPU: dois processos java, um deles com quase 16 CPUs.
No tráfego que chega ao servidor, o sar mostra a recepção da eth0 em 22 Mbytes/s.
04 · COMO LER OS SINAIS
Erros e saturação primeiro
O post manda procurar erros e saturação, que são fáceis de interpretar, e só depois olhar a utilização. Saturação é quando um recurso tem mais carga do que consegue atender. Esse roteiro faz parte do método USE, que confere utilização, saturação e erros de todos os recursos, e o post recomenda atentar para quando um recurso já foi checado e descartado. Esse raciocínio se liga ao estudo de antipadrões de desempenho.
05 · LIMITES E PRÓXIMOS PASSOS
Quando o minuto não basta
Para ir mais fundo, o post indica um tutorial que percorre mais de 40 comandos. O post diz que as ferramentas de monitoramento resolvem a maioria dos problemas e que só às vezes é preciso entrar na instância.
Perguntas frequentes
O que é Netflix: análise de performance Linux em 60 s?
Arquitetura real em produção. Pontos centrais: Monitoramento e Observabilidade e Antipadrões de Desempenho.
O que o design de Netflix: análise de performance Linux em 60 s cobre?
Ele está organizado nestas seções: Um servidor lento e um minuto para olhar, Um comando para cada recurso, Seguindo os sinais num servidor real, Erros e saturação primeiro e Quando o minuto não basta.
Quanto tempo leva Netflix: análise de performance Linux em 60 s e qual é o nível?
Leva cerca de 15 minutos para ler e tem nível Pleno.
Agora projete você mesmo
Rode este caso como uma entrevista na escola de System Design: você toma as decisões, o tutor as questiona e você vê a nota do seu desenho.