57
© 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

Amazon EC2 avançado

Embed Size (px)

Citation preview

Page 1: Amazon EC2 avançado

© 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

Page 2: Amazon EC2 avançado

InstânciasAPIs

Rede

EC2EC2

Opções de compra

Amazon Elastic Compute Cloud é Abrangente

Page 3: Amazon EC2 avançado

Host Server

Hypervisor

Guest 1 Guest 2 Guest n

Amazon EC2 Instâncias

Page 4: Amazon EC2 avançado

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

Page 5: Amazon EC2 avançado

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

Page 6: Amazon EC2 avançado

Definindo Desempenho

Page 7: Amazon EC2 avançado

• Servidores são contratados para executar tarefas

• O desempenho é medido baseado na tarefa a ser executada

Contratando um Servidor

?

Page 8: Amazon EC2 avançado

• 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)

Page 9: Amazon EC2 avançado

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

Page 10: Amazon EC2 avançado

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

Page 11: Amazon EC2 avançado

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

Page 12: Amazon EC2 avançado

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

Page 13: Amazon EC2 avançado

Exemplo: Aplicação Web

• Uso de memória

Page 14: Amazon EC2 avançado

Exemplo: Aplicação Web

• Uso do disco

Page 15: Amazon EC2 avançado

Exemplo: Aplicação Web

• Uso de Rede

Page 16: Amazon EC2 avançado

Exemplo: Aplicação Web

• Uso de CPU

Page 17: Amazon EC2 avançado

• 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

Page 18: Amazon EC2 avançado

Entregando Desempenho Computacional

com Instâncias Amazon EC2

Page 19: Amazon EC2 avançado

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

Page 20: Amazon EC2 avançado

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

Page 21: Amazon EC2 avançado

Dica: Use PV-HVM AMIs COM EBS

Page 22: Amazon EC2 avançado

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

Page 23: Amazon EC2 avançado

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

Page 24: Amazon EC2 avançado

• 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

Page 25: Amazon EC2 avançado

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

Page 26: Amazon EC2 avançado

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

Page 27: Amazon EC2 avançado

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

Page 28: Amazon EC2 avançado

Dica: Monitore a utilização de créditos

Page 29: Amazon EC2 avançado

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

Page 30: Amazon EC2 avançado

Entregando desempenho de I/O com Instâncias

Amazon EC2

Page 31: Amazon EC2 avançado

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

Page 32: Amazon EC2 avançado

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

Page 33: Amazon EC2 avançado

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…

Page 34: Amazon EC2 avançado

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

Page 35: Amazon EC2 avançado

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

Page 36: Amazon EC2 avançado

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

Page 37: Amazon EC2 avançado

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

Page 38: Amazon EC2 avançado

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

Page 39: Amazon EC2 avançado

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

Page 40: Amazon EC2 avançado

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

Page 41: Amazon EC2 avançado

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

Page 42: Amazon EC2 avançado

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

Page 43: Amazon EC2 avançado

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

Page 44: Amazon EC2 avançado

• 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?

Page 45: Amazon EC2 avançado

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

Page 46: Amazon EC2 avançado

SR-IOV SR-IOV(Enhanced Networking): Ativo

(Windows)

Não Sim!

Page 47: Amazon EC2 avançado

Enhanced Networking - Desempenho

9.53 Gbits/sec

Page 48: Amazon EC2 avançado

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

Page 49: Amazon EC2 avançado

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

Page 50: Amazon EC2 avançado

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

Page 51: Amazon EC2 avançado

Ping entre instâncias sem Placement Group

Avg: 0.167msec

Page 52: Amazon EC2 avançado

Ping entre instâncias com Placement Group

Avg: .099msec

Page 53: Amazon EC2 avançado

Resumo

Page 54: Amazon EC2 avançado

• 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

Page 55: Amazon EC2 avançado

• 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

Page 56: Amazon EC2 avançado

Próximos Passos

• Acesse nossa documentação de instâncias Amazon

EC2

• http://amzn.to/1OpWzIO

• Tire suas dúvidas em nosso estande

Page 57: Amazon EC2 avançado

Obrigado!