Upload
amazon-web-services-latam
View
1.252
Download
0
Embed Size (px)
Citation preview
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Thiago Paulino | Arquiteto de Soluções
02 de Junho de 2016
Amazon EC2 avançado
Melhorando o desempenho
InstânciasAPIs
Rede
EC2EC2
Opções de compra
Amazon Elastic Compute Cloud é Abrangente
Host Server
Hypervisor
Guest 1 Guest 2 Guest n
Amazon EC2 Instâncias
2006 2008 2010 2012 2014 2016
m1.small
m1.large
m1.xlarge
c1.medium
c1.xlarge
m2.xlarge
m2.4xlarge
m2.2xlarge
cc1.4xlarge
t1.micro
cg1.4xlarge
cc2.8xlarge
m1.medium
hi1.4xlarge
m3.xlarge
m3.2xlarge
hs1.8xlarge
cr1.8xlarge
c3.large
c3.xlarge
c3.2xlarge
c3.4xlarge
c3.8xlarge
g2.2xlarge
i2.xlarge
i2.2xlarge
i2.4xlarge
i2.4xlarge
m3.medium
m3.large
r3.large
r3.xlarge
r3.2xlarge
r3.4xlarge
r3.8xlarge
t2.micro
t2.small
t2.med
c4.large
c4.xlarge
c4.2xlarge
c4.4xlarge
c4.8xlarge
d2.xlarge
d2.2xlarge
d2.4xlarge
d2.8xlarge
g2.8xlarge
t2.large
m4.largem4.xlarge
m4.2xlarge
m4.4xlarge
m4.10xlarge
Histórico das Instâncias Amazon EC2
t2.nano
x1.32xlarge
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
Definindo Desempenho
• Servidores são contratados para executar tarefas
• O desempenho é medido baseado na tarefa a ser executada
Contratando um Servidor
?
• 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)
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
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
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
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
Exemplo: Aplicação Web
• Uso de memória
Exemplo: Aplicação Web
• Uso do disco
Exemplo: Aplicação Web
• Uso de Rede
Exemplo: Aplicação Web
• Uso de CPU
• 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
Entregando Desempenho Computacional
com Instâncias Amazon EC2
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
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
Dica: Use PV-HVM AMIs COM EBS
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
Resumo: Instâncias C4
Intel E5-2666 v3 com 2.9 GHz
Controles P-state e C-state
Modelo vCPU Memória (GiB) EBS (Mbps)
c4.large 2 3.75 500
c4.xlarge 4 7.5 750
c4.2xlarge 8 15 1,000
c4.4xlarge 16 30 2,000
c4.8xlarge 36 60 4,000
• 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
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
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
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
Dica: Monitore a utilização de créditos
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
Entregando desempenho de I/O com Instâncias
Amazon EC2
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
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
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…
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
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
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
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
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
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
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
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
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
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
• 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?
SR-IOV SR-IOV(Enhanced Networking): Ativo
(Linux)
Não Sim!
[ec2-user@ip-10-0-3-70 ~]$ ethtool -i eth0
driver: vif
version:
firmware-version:
bus-info: vif-0
…
[ec2-user@ip-10-0-3-70 ~]$ ethtool -i eth0
driver: ixgbevf
version: 2.14.2+amzn
firmware-version: N/A
bus-info: 0000:00:03.0
…
SR-IOV SR-IOV(Enhanced Networking): Ativo
(Windows)
Não Sim!
Enhanced Networking - Desempenho
9.53 Gbits/sec
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
Placement Group
Elastic
network
interface
Subnet A
us-east-1a10.0.1.0/24
10.0.1.100
Subnet A2
us-east-1a10.0.2.0/24
10.0.1.101
10.0.2.50
10.0.2.51
Subnet C
us-east-1c10.0.3.0/24
10.0.3.99
Instance
1
Instance
2
Instance
3 Instance
4
Placement group
Placement Group
Elastic
network
interface
Subnet A
us-east-1a10.0.1.0/24
10.0.1.100
Subnet A2
us-east-1a10.0.2.0/24
10.0.1.101
10.0.2.50
10.0.2.51
Subnet C
us-east-1c10.0.3.0/24
10.0.3.99
Instance
1
Instance
2
Instance
3 Instance
4
Ping entre instâncias sem Placement Group
Avg: 0.167msec
Ping entre instâncias com Placement Group
Avg: .099msec
Resumo
• 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
• 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
Próximos Passos
• Acesse nossa documentação de instâncias Amazon
EC2
• http://amzn.to/1OpWzIO
• Tire suas dúvidas em nosso estande
Obrigado!