O Amazon EC2 oferece vários tipos de instâncias para atender de maneira otimizada os cenários de uso. Nesta sessão, iremos mostrar as principais funcionalidades, detalhar as características de algumas famílias, apresentar as melhores práticas e compartilhar dicas para extrair o máximo de desempenho das suas instâncias.
5. O que esperar dessa sessão
• Definindo o desempenho de sistema e como
caracterizar as diferentes tarefas (workloads)
• Como as instâncias Amazon EC2 entregam
desempenho com flexibilidade e agilidade
• Como extrair o máximo das instâncias Amazon EC2
considerando os diferentes tipos disponíveis
7. • Servidores são contratados para executar tarefas
• O desempenho é medido baseado na tarefa a ser executada
Contratando um Servidor
?
8. • O que desempenho em
perspectiva significa:
– Tempo de resposta
– Taxa de transferência
– Consistência
Definindo desempenho: Baseado em Perspectiva
Aplicação
Bibliotecas
Chamadas de Sistema
Kernel
Dispositivos
Tarefa (Workload)
9. Modelo Simples de Desempenho para Thread Única
• Usando CPU: executando (em modo usuário)
• Sem utilização de CPU: espera por ciclos de processamento,
espera por I/O de disco ou rede, thread locks, paginação de
memória ou para mais execuções
10. Fatores de Desempenho
Recursos Fatores de Desempenho Indicadores
CPU Sockets, número de cores,
frequência do clock, capacidade de
burst
Utilização de CPU e fila de execução
Memória Capacidade de memória Memória livre, paginação, uso de swap
Interface de
rede
Limite de transferência, quantidade
de pacotes
Capacidade de recebimento de dados,
transmissão de dados baseado na
capacidade máxima de banda
Discos Operações de IO (Entrada/Saida)
por segundo (IOPS), throughput
Fila de espera, utilização de discos,
erros de disco
11. Utilização de Recursos
• Para alguns cenários, a eficiência é baseada na utilização dos
recursos
• Algo com 100% de utilização não pode aceitar mais tarefas ou
execuções
• Baixa utilização pode indicar que mais recurso do que o
necessário foi contratado
12. Exemplo: Aplicação Web
• MediaWiki instalado e rodando em Apache com 140 páginas de
conteúdo
• A carga de acesso aumenta em grandes intervalos de tempo
17. • Escolher a melhor instância é equivalente a ajuste de
desempenho
• Desligar instâncias é tão fácil quanto ligar
• Encontre o tipo de instância ideal para sua aplicação
Escolha da instância = Ajuste do desempenho
19. X86 Virtualização de CPU: Antes do Intel VT-x
VMM
Aplicação
Kernel
PV
• Transações binárias para instruções privilegiadas
• Para-virtualização (PV)
• PV precisará sempre passar pelo VMM, adicionando latência
• Aplicações com syscall (System Call) são mais afetadas
20. X86 Virtualização de CPU: Depois do Intel VT-x
Kernel
Aplicação
VMM
PV-HVM
• Hardware assisted virtualization (HVM)
• PV-HVM usa drivers PV apropriadamente para operações que são
lentas quando emuladas
• Exemplo: Rede e IO de disco
22. Desempenho de CPU e Agendamento (Scheduling)
• Hypervisor garante que cada instância irá receber o seu
tempo de CPU
• Ajuste de alocação de recursos
• Sem restrição vs. com restrição (Concorrência)
• Alocação de recursos variáveis
• Diferentes ações podem ser tomadas, dependendo da
necessidade
• Necessidade de uso
• Tempo de resposta / término
• Compartilhamentos
24. • Ao entrar no estado de espera (idle), cores sem ociosidade
podem ter até 300MHz adicionais de capacidade
• Mas… o estado de espera (idle state) requer mais tempo
para ser encerrado, talvez não seja apropriado para uma
aplicação muito sensível a latência
Novo: Instâncias C4 - Controle P-state e C-state
25. Dica: Controle do P-state para AVX2
• Se uma aplicação faz uso constante do AVX2 de todos os
processadores, o processador pode tentar extrair mais
potência do que precisa
• O processador irá reduzir a frequência de maneira
transparente
• Alterações excessivas na frequência da CPU podem deixar
sua aplicação lenta
26. Resumo: Instâncias T2
• Instâncias de baixo custo $0.013 por hora
• Desempenho “Burstable”
• Alocação da variação da CPU baseada em créditos
Modelo vCPU Créditos de
CPU / Hora
Memória
(GiB)
Armazenamento
t2.nano 1 3 0,5 Apenas EBS
t2.micro 1 6 1 Apenas EBS
t2.small 1 12 2 Apenas EBS
t2.medium 2 24 4 Apenas EBS
t2.large 2 36 8 Apenas EBS
27. Como os Créditos Funcionam
Taxa de Referência
(Baseline)
Saldo
de
Crédito
• O crédito de CPU fornece
desempenho para um processador
por um minuto
• A instância ganha créditos de CPU
constantemente
• A instância consome os créditos
quando solicitado
• Os créditos expiram depois de 24
horas
Taxa de
Burst
29. Monitore o Desempenho de CPU na Instância
• Indicadores de execuções
• User time
• System time (kernel mode)
• Espera por I/O, threads bloqueadas por I/O de disco
• O que acontece se trocar os tipos de instâncias? (PV
para HVM) m3,m4,c3,c4
31. I/O e Virtualização de Dispositivos
• Requisições entre dispositivos virtuais e hardware
compartilhado
• Modelo compartilhado
• Intel VT-d
• Acesso direto ao IOMMU para dispositivo físico/dedicado
• Enhanced Networking
32. Resumo: Instâncias I2
16 vCPU: 3.2 TB SSD; 32 vCPU: 6.4 TB SSD
365K IOPS de leituras aleatórias na instância com 32
vCPU
Modelo vCPU Memória
(GiB)
Armazenamento IOPS
Leitura
IOPS
Escrita
i2.xlarge 4 30.5 1 x 800 SSD 35,000 35,000
i2.2xlarge 8 61 2 x 800 SSD 75,000 75,000
i2.4xlarge 16 122 4 x 800 SSD 175,000 155,000
i2.8xlarge 32 244 8 x 800 SSD 365,000 315,000
33. Dica: Use Kernel 3.8+
• Amazon Linux 13.09 ou mais recente
• Ubuntu 14.04 ou mais recente
• RHEL7 ou mais recente
• Outras distribuições…
34. Dica: Amazon Linux
• Tempo de boot mais rápido
• Drivers otimizados
• Tunning de kernel e drivers realizado pelo time da AWS
• Preparada para enhanced networking
35. Hardware
Modelo Compartilhado: Rede
Driver Domain Guest Domain Guest Domain
VMM
Frontend
driver
Frontend
driver
Backend
driver
Device
Driver
CPU
Física
Memória
Física
Dispositivo
de Rede
CPU
Virtual
Memória
Virtual
CPU
Scheduling
Sockets
Aplicação
36. Hardware
Modelo Compartilhado: Rede
Driver Domain Guest Domain Guest Domain
VMM
Frontend
driver
Frontend
driver
Backend
driver
Device
Driver
CPU
Física
Memória
Física
Dispositivo
de Rede
CPU
Virtual
Memória
Virtual
CPU
Scheduling
Sockets
Aplicação
37. Hardware
Modelo Compartilhado: Rede
Driver Domain Guest Domain Guest Domain
VMM
Frontend
driver
Frontend
driver
Backend
driver
Device
Driver
CPU
Física
Memória
Física
Dispositivo
de Rede
CPU
Virtual
Memória
Virtual
CPU
Scheduling
Sockets
Aplicação
38. Hardware
Modelo Compartilhado: Rede
Driver Domain Guest Domain Guest Domain
VMM
Frontend
driver
Frontend
driver
Backend
driver
Device
Driver
CPU
Física
Memória
Física
Dispositivo
de Rede
CPU
Virtual
Memória
Virtual
CPU
Scheduling
Sockets
Aplicação
39. Hardware
Modelo Compartilhado: Rede
Driver Domain Guest Domain Guest Domain
VMM
Frontend
driver
Frontend
driver
Backend
driver
Device
Driver
CPU
Física
Memória
Física
Dispositivo
de Rede
CPU
Virtual
Memória
Virtual
CPU
Scheduling
Sockets
Aplicação
40. Enhanced Networking
• SR-IOV elimina a necessidade do Driver Domain
• A placa de rede física é exposta para a instância
Amazon EC2
• Requer um driver especial, isso quer dizer:
• O sistema operacional de sua instância precisa saber disso
• A instância EC2 precisa suportar essa funcionalidade
41. Hardware
Driver Domain Guest Domain Guest Domain
VMM
Frontend
driver
Driver
de Rede
Backend
driver
Device
Driver
CPU
Física
Memória
Física
Dispositivo de
Rede SR-IOV
CPU
Virtual
Memória
Virtual
CPU
Scheduling
Sockets
Aplicação
Depois do Enhanced Networking
42. Hardware
Driver Domain Guest Domain Guest Domain
VMM
Frontend
driver
Driver
de Rede
Backend
driver
Device
Driver
CPU
Física
Memória
Física
Dispositivo de
Rede SR-IOV
CPU
Virtual
Memória
Virtual
CPU
Scheduling
Sockets
Aplicação
Depois do Enhanced Networking
43. Dica: Use Enhanced Networking
• Para grande quantidade de pacotes por segundo
• Baixa variação de latência
• Escolha um sistema operacional que suporte isso
• Verifique se instância ou AMI possui suporte a SR-IOV
Documentação: http://amzn.to/1bK0gVU
44. • Em muitas novas AMI’s, Enhanced
Networking já vem configurado
• Últimas AMIs do Amazon Linux
• AMI do Windows Server 2012 R2
SR-IOV (Enhanced Networking): Já vem
configurado?
48. Dica: Use Placement Group
• Para grande quantidade de pacotes por segundo
• Baixa variação de latência
• Escolha um sistema operacional que suporte isso
• Verifique se instância ou AMI possui suporte a SR-IOV
Documentação: http://amzn.to/1JAFY2p
54. • Procure a melhor instância para a sua necessidade
– Defina desempenho (mais memória, CPU ou capacidade de rede)
– Monitore a utilização dos recursos
– Faça mudanças
Escolha de instância = Tuning de desempenho
55. • PV-HVM
• Controle do C state e P state
• Monitore os créditos de CPU das instâncias T2
• Monitore o desempenho de I/O em disco
• Enhanced Networking
• Placement Group
Recapitulando: Obtendo mais de sua instância
EC2
56. Próximos Passos
• Acesse nossa documentação de instâncias Amazon
EC2
• http://amzn.to/1OpWzIO
• Tire suas dúvidas em nosso estande