Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Amazon EC2 avançado

1,279 views

Published on

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.

Published in: Technology

Amazon EC2 avançado

  1. 1. © 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
  2. 2. InstânciasAPIs Rede EC2 EC2 Opções de compra Amazon Elastic Compute Cloud é Abrangente
  3. 3. Host Server Hypervisor Guest 1 Guest 2 Guest n Amazon EC2 Instâncias
  4. 4. 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.large m4.xlarge m4.2xlarge m4.4xlarge m4.10xlarge Histórico das Instâncias Amazon EC2 t2.nano x1.32xlarge
  5. 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
  6. 6. Definindo Desempenho
  7. 7. • Servidores são contratados para executar tarefas • O desempenho é medido baseado na tarefa a ser executada Contratando um Servidor ?
  8. 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. 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. 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. 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. 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
  13. 13. Exemplo: Aplicação Web • Uso de memória
  14. 14. Exemplo: Aplicação Web • Uso do disco
  15. 15. Exemplo: Aplicação Web • Uso de Rede
  16. 16. Exemplo: Aplicação Web • Uso de CPU
  17. 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
  18. 18. Entregando Desempenho Computacional com Instâncias Amazon EC2
  19. 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. 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
  21. 21. Dica: Use PV-HVM AMIs COM EBS
  22. 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
  23. 23. 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
  24. 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. 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. 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. 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
  28. 28. Dica: Monitore a utilização de créditos
  29. 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
  30. 30. Entregando desempenho de I/O com Instâncias Amazon EC2
  31. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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?
  45. 45. 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 …
  46. 46. SR-IOV SR-IOV(Enhanced Networking): Ativo (Windows) Não Sim!
  47. 47. Enhanced Networking - Desempenho 9.53 Gbits/sec
  48. 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
  49. 49. Placement Group Elastic network interface Subnet A us-east-1a 10.0.1.0/24 10.0.1.100 Subnet A2 us-east-1a 10.0.2.0/24 10.0.1.101 10.0.2.50 10.0.2.51 Subnet C us-east-1c 10.0.3.0/24 10.0.3.99 Instance 1 Instance 2 Instance 3 Instance 4
  50. 50. Placement group Placement Group Elastic network interface Subnet A us-east-1a 10.0.1.0/24 10.0.1.100 Subnet A2 us-east-1a 10.0.2.0/24 10.0.1.101 10.0.2.50 10.0.2.51 Subnet C us-east-1c 10.0.3.0/24 10.0.3.99 Instance 1 Instance 2 Instance 3 Instance 4
  51. 51. Ping entre instâncias sem Placement Group Avg: 0.167msec
  52. 52. Ping entre instâncias com Placement Group Avg: .099msec
  53. 53. Resumo
  54. 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. 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. 56. Próximos Passos • Acesse nossa documentação de instâncias Amazon EC2 • http://amzn.to/1OpWzIO • Tire suas dúvidas em nosso estande
  57. 57. Obrigado!

×