O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

EC2: Cómputo en la nube a profundidad

491 visualizações

Publicada em

EC2: Cómputo en la nube a profundidad - https://aws.amazon.com/es/ec2/

Más informacion: http://aws.amazon.com/es/colombia/

Publicada em: Tecnologia
  • Seja o primeiro a comentar

EC2: Cómputo en la nube a profundidad

  1. 1. © 2017, Amazon Web Services EC2: Cómputo en la nube a profundidad Jesus Humberto Contreas Rancurello, Arquitecto de Soluciones jesushum@amazon.com Mayo 2017
  2. 2. © 2017, Amazon Web Services Que esperar de esta Sesión • Comprender factores al seleccionar una instancia de EC2 • Definición de rendimiento del sistema y cómo se categoriza para las diferentes cargas de trabajo • Cómo las instancias de Amazon EC2 entregan rendimiento mientras se proporciona flexibilidad y agilidad • Cómo aprovechar al máximo tu experiencia de EC2 a través del lente de los distintos tipos de instancia
  3. 3. © 2017, Amazon Web Services API EC2 EC2 Amazon Elastic Compute Cloud es extenso Instancias Redes Opciones de compra
  4. 4. © 2017, Amazon Web Services Servidor Físico Hipervisor EC2 1 EC2 2 EC2 n Instancias de Amazon EC2
  5. 5. © 2017, Amazon Web Services En el pasado  Lanzado por primera vez en Agosto de 2006  Instancia M1  “Un tamaño para todos” M1
  6. 6. © 2017, Amazon Web Services Historia de Amazon EC2 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 x1.32xlarge t2.nano m4.16xlarge p2.xlarge p2.8xlarge p2.16xlarge
  7. 7. © 2017, Amazon Web Services Generación de Instancias c4.xlarge Familia de Instancia Tamaño de instancia
  8. 8. Un Ampl io E spectr o de Capacidades de Cómputo en la Nube de AW S P2M4 D2 X1 G2T2 R4 I3 C5 GPU de Uso General Propósito General Storage Denso Memoria Grande Gráficos IntensivosIntenso en Memoria Alto I/O Cómputo IntensivoBurstable Disponibilidad General desde Diciembre 2016 Disponibilidad General desde Diciembre 2016 I3 Disponibilidad General desde Febrero 2017 C5 Próximamente
  9. 9. © 2017, Amazon Web Services
  10. 10. © 2017, Amazon Web Services Deshabilitar Hyper-Threading si lo requiere  Utilizar 'lscpu' para validar el diseño en tu instancia ec2  Hacerlo en línea: for i in `seq 64 127`; do echo 0 > /sys/devices/system/cpu/cpu${i}/online done  Hacerlo con reboot:  Establecer grub para inicializar sólo la primera mitad de todos los threads:  maxcpus=63 [ec2-user@ip-172-31-7-218 ~]$ lscpu CPU(s): 128 On-line CPU(s) list: 0-127 Thread(s) per core: 2 Core(s) per socket: 16 Socket(s): 4 NUMA node(s): 4 Model name: Intel(R) Xeon(R) CPU Hypervisor vendor: Xen Virtualization type: full NUMA node0 CPU(s): 0-15,64-79 NUMA node1 CPU(s): 16-31,80-95 NUMA node2 CPU(s): 32-47,96-111 NUMA node3 CPU(s): 48-63,112-127
  11. 11. © 2017, Amazon Web Services
  12. 12. © 2017, Amazon Web Services Tamaño de instancia c4.8xlarge 2 - c4.4xlarge ≈ 4 - c4.2xlarge ≈ 8 - c4.xlarge ≈
  13. 13. © 2017, Amazon Web Services Asignación de recursos  Todos los recursos asignados están dedicados a su instancia sin ser sobre sobresuscritos  Todos los vCPUs están dedicados a usted  La memoria asignada se asigna sólo a su instancia  Los recursos de red son particionados para evitar "vecinos ruidosos”  ¿Curioso sobre el número de instancias por host? Utilizar "Hosts Dedicados" como una guía. *De nuevo, la familia “T” es especial
  14. 14. © 2017, Amazon Web Services "Lanzar nuevas instancias y ejecutar pruebas en paralelo es fácil ... [al elegir una instancia] no hay sustituto para medir el rendimiento de su aplicación completamente". - EC2 documentation
  15. 15. © 2017, Amazon Web Services Explicación de Timekeeping  Timekeeping en una instancia es engañosamente difícil  gettimeofday(), clock_gettime(), QueryPerformanceCounter()  TSC vs XEN CLOCK  TSC disponible desde sandy bridge  En instancias de generación actuales, utilice TSC como origen de reloj (clocksource)
  16. 16. © 2017, Amazon Web Services Evaluación comparativa - Aplicación de tiempo intensivo #include <sys/time.h> #include <time.h> #include <stdio.h> #include <unistd.h> int main() { time_t start,end; time (&start); for ( int x = 0; x < 100000000; x++ ) { float f; float g; float h; f = 123456789.0f; g = 123456789.0f; h = f * g; struct timeval tv; gettimeofday(&tv, NULL); } time (&end); double dif = difftime (end,start); printf ("Elasped time is %.2lf seconds.n", dif ); return 0; }
  17. 17. © 2017, Amazon Web Services Uso de la fuente de reloj Xen [centos@ip-192-168-1-77 testbench]$ strace -c ./test Elasped time is 12.00 seconds. % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 99.99 3.322956 2 2001862 gettimeofday 0.00 0.000096 6 16 mmap 0.00 0.000050 5 10 mprotect 0.00 0.000038 8 5 open 0.00 0.000026 5 5 fstat 0.00 0.000025 5 5 close 0.00 0.000023 6 4 read 0.00 0.000008 8 1 1 access 0.00 0.000006 6 1 brk 0.00 0.000006 6 1 execve 0.00 0.000005 5 1 arch_prctl 0.00 0.000000 0 1 munmap ------ ----------- ----------- --------- --------- ---------------- 100.00 3.323239 2001912 1 total
  18. 18. © 2017, Amazon Web Services Uso de la fuente de reloj TSC [centos@ip-192-168-1-77 testbench]$ strace -c ./test Elasped time is 2.00 seconds. % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 32.97 0.000121 7 17 mmap 20.98 0.000077 8 10 mprotect 11.72 0.000043 9 5 open 10.08 0.000037 7 5 close 7.36 0.000027 5 6 fstat 6.81 0.000025 6 4 read 2.72 0.000010 10 1 munmap 2.18 0.000008 8 1 1 access 1.91 0.000007 7 1 execve 1.63 0.000006 6 1 brk 1.63 0.000006 6 1 arch_prctl 0.00 0.000000 0 1 write ------ ----------- ----------- --------- --------- ---------------- 100.00 0.000367 53 1 total
  19. 19. © 2017, Amazon Web Services Cambiar con: Tip: Utilice TSC como origen de reloj
  20. 20. © 2017, Amazon Web Services Control de P-state y C-state  Disponible en instancias:  c4.8xlarge, d2.8xlarge, m4.10xlarge, m4.16xlarge, p2.16xlarge, x1.16xlarge, x1.32xlarge  Al deshabilitar núcleos, los que quedan activos pueden alcanzar frecuencias de reloj superiores a 3Ghz  Instancia c4.8xlarge con solo dos núcleos activos pasa de 2.9GHz a 3.5GHz
  21. 21. © 2017, Amazon Web Services Control de estado P  Cambios de la frecuencia de CPU pueden ralentizar una aplicación  http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/processor_state_control.ht m sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo"
  22. 22. © 2017, Amazon Web Services Revisión: Instancias T2  Instancia EC2 de menor costo a $ 0.0065 por hora  Rendimiento Dinámico (Burstable)  Asignación fija reforzada con créditos de CPU Modelo vCPU Linea Base Créditos CPU / Hora Memoria (GiB) Almacenamiento t2.nano 1 5% 3 .5 Solo EBS t2.micro 1 10% 6 1 Solo EBS t2.small 1 20% 12 2 Solo EBS t2.medium 2 40%** 24 4 Solo EBS t2.large 2 60%** 36 8 Solo EBS Propósito general, servicio web, entornos de desarrollo
  23. 23. © 2017, Amazon Web Services Cómo funcionan los créditos  Un crédito de CPU proporciona el rendimiento de un núcleo de CPU completo durante un minuto  Una instancia gana créditos de CPU a un ritmo constante  Una instancia consume créditos cuando está activa  Los créditos caducan después de 24 horas Tasa de referencia Balance del crédito Tasa Dinámica
  24. 24. © 2017, Amazon Web Services Tip: Supervisar el saldo de crédito CPU
  25. 25. © 2017, Amazon Web Services Revisión: Instancias X1  La mayor instancia de memoria con 2 TB de DRAM  Socket quadcore, procesadores Intel E7 con 128 vCPU Modelo vCPU Memoria (GiB) Almacenamiento local Red x1.16xlarge 64 976 1x 1920GB SSD 10Gbps x1.32xlarge 128 1952 2x 1920GB SSD 20Gbps Bases de datos en memoria, gran procesamiento de datos, cargas de trabajo HPC
  26. 26. © 2017, Amazon Web Services NUMA  Acceso a memoria no-uniforme  Cada procesador en un sistema multi-CPU tiene memoria local que es accesible a través de una interconexión rápida  Cada procesador también puede acceder a la memoria de otros CPUs, pero el acceso a la memoria local es mucho más rápido que la memoria remota  El rendimiento está relacionado con el número de sockets de CPU y cómo están conectados - Intel QuickPath Interconnect (QPI)
  27. 27. © 2017, Amazon Web Services QPI 122GB 122GB 16 vCPU’s 16 vCPU’s r3.8xlarge
  28. 28. © 2017, Amazon Web Services QPI QPI QPIQPI QPI 488GB 280 488GB 488GB 420 488GB 32 vCPU’s 32 vCPU’s 32 vCPU’s 32 vCPU’s x1.32xlarge
  29. 29. © 2017, Amazon Web Services Tip: Soporte del Kernel para balancear NUMA  Una aplicación funcionará mejor cuando los threads de sus procesos accedan a la memoria en el mismo nodo NUMA.  El balanceo NUMA mueve las tareas más cerca de la memoria a la que está accediendo.  Todo esto es hecho automáticamente por el kernel de Linux cuando el balanceo de NUMA automático está activo: versión 3.8+ del kernel de Linux.  La compatibilidad con Windows para NUMA apareció por primera vez en las SKU de Enterprise y Data Center de Windows Server 2003.  Establezca "numa = off" o utilice numactl para reducir la paginación NUMA si su aplicación utiliza más memoria de la que cabrá en un solo socket o tiene threads que se mueven entre sockets
  30. 30. © 2017, Amazon Web Services Rendimiento de impacto de los sistemas operativos  Aplicación web de memoria intensiva  Creado por múltiples threads  Memoria rápidamente asignada / desasignada  Comparación del rendimiento de RHEL6 vs RHEL7  Observe la cantidad alta de tiempo "system" en la parte superior  Buscar una herramienta de referencia (ebizzy) con un perfil de rendimiento similar  Trazado su rendimiento con "perf”
  31. 31. © 2017, Amazon Web Services En RHEL6 [ec2-user@ip-172-31-12-150-RHEL6 ebizzy-0.3]$ sudo perf stat ./ebizzy -S 10 12,409 records/s real 10.00 s user 7.37 s sys 341.22 s Performance counter stats for './ebizzy -S 10': 361458.371052 task-clock (msec) # 35.880 CPUs utilized 10,343 context-switches # 0.029 K/sec 2,582 cpu-migrations # 0.007 K/sec 1,418,204 page-faults # 0.004 M/sec 10.074085097 seconds time elapsed
  32. 32. © 2017, Amazon Web Services RHEL6 Salida del gráfico de flama www.brendangregg.com/flamegraphs.html
  33. 33. © 2017, Amazon Web Services En RHEL7 [ec2-user@ip-172-31-7-22-RHEL7 ~]$ sudo perf stat ./ebizzy-0.3/ebizzy -S 10 425,143 records/s real 10.00 s user 397.28 s sys 0.18 s Performance counter stats for './ebizzy-0.3/ebizzy -S 10': 397515.862535 task-clock (msec) # 39.681 CPUs utilized 25,256 context-switches # 0.064 K/sec 2,201 cpu-migrations # 0.006 K/sec 14,109 page-faults # 0.035 K/sec 10.017856000 seconds time elapsed Era 12,400 registros/s! Eran 1,418,204!
  34. 34. © 2017, Amazon Web Services RHEL7 Salida del gráfico de flama
  35. 35. © 2017, Amazon Web Services Hardware Modelo de controlador dividido Dominio del controlador Dominio invitado Dominio invitado VMM Controlador Delantero Controlador delantero Controlador Trasero Controlador del Dispositivo CPU Físico Memoria Física Dispositivo de almacenamiento CPU Virtual Memoria Virtual Programación de CPU Sockets Applicación 1 23 4 5
  36. 36. © 2017, Amazon Web Services Concesión en Kernels pre-3.8.0  Requiere "mapeo de concesión" antes de 3.8.0  Los mapeo de concesión son operaciones costosas debido a descargas de TLB SSD Dominio inter I/O: (1) Conceder memoria (2) Escribir en buffer de anillo (3) Evento de señal (4) Leer buffer de anillo (5) Mapeo concedido (6) Concesiones de lectura o escritura (7) Desasignar concesiones read(fd, buffer,…) Dominio I/O Instancia
  37. 37. © 2017, Amazon Web Services Concesión en Kernels 3.8.0+, persistente e indirecto  Asignaciones de mapeo concesión se configuran en un pool una sola vez  Los datos se copian dentro y fuera de la concesión del Pool SSD read(fd, buffer…) Dominio I/O Instancia Concesión de pool Copiar a y desde una concesión de pool
  38. 38. © 2017, Amazon Web Services Validación de concesiones persistentes [ec2-user@ip-172-31-4-129 ~]$ dmesg | egrep -i 'blkfront' Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks. blkfront: xvda: barrier or flush: disabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvdb: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvdc: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvdd: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvde: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvdf: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvdg: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvdh: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled; blkfront: xvdi: flush diskcache: enabled; persistent grants: enabled; indirect descriptors: enabled;
  39. 39. © 2017, Amazon Web Services 2009 – Hace ya algún tiempo de lo que crees  Avatar fue la mejor película en los Cines  Facebook superó a MySpace en usuarios activos  Presidente Obama realizo su juramentado en el cargo  El kernel de Linux 2.6.32 fue lanzado Tip: Utilizar kernel 3.10+  Amazon Linux 13.09 o posterior  Ubuntu 14.04 o posterior  RHEL / Centos 7 o posterior  Etc.
  40. 40. © 2017, Amazon Web Services Dispositivo Pass Through: Enhanced Networking  SR-IOV elimina la necesidad del controlador de dominio  El dispositivo de red física expone la función virtual a la instancia  Requiere un controlador especializado, lo que significa:  Su instancia OS debe saber acerca del driver  EC2 necesita indicársele que su instancia puede usarlo
  41. 41. © 2017, Amazon Web Services Hardware Después de redes mejoradas Controlador de Dominio Dominio Invitado Dominio Invitado VMM Controlador NIC CPU Físico Memoria Física Controlador de Red SR-IOV CPU Virtual Memoria Virtual Programación CPU Sockets Applicación 1 2 3 Controlador NIC
  42. 42. © 2017, Amazon Web Services Adaptador de Red Elástico (ENA)  Próxima generación de redes mejoradas  Checksums de hardware  Soporte de múltiples-colas  Recepción de Dirección lateral  20Gbps en un grupo de ubicaciones  Nuevo controlador de red “Open Source” por Amazon
  43. 43. © 2017, Amazon Web Services Rendimiento de la Red  20 Gigabit y 10 Gigabit  Medida de una-via, doble que el bidireccional (duplex completo)  Alto, Moderado, Bajo – En función del tamaño de la instancia  Utilice ”placement groups” cuando necesite ancho de banda consistente entre instancias  Todo el tráfico es limitado a 5 Gb/s al salir de EC2
  44. 44. © 2017, Amazon Web Services Rendimiento EBS  El tamaño de la instancia afecta el rendimiento  Utilizar “EBS optimization” si el desempeño EBS es importante
  45. 45. © 2017, Amazon Web Services  Seleccione AMIs HVM  Timekeeping: utilizar TSC  Controles de C-state and P-state  Supervisar los créditos de CPU T2  Utilice un sistema operativo Linux moderno  Balanceo NUMA  Concesiones persistentes para el rendimiento de I/O  “Enhanced Networking”  Perfile su aplicación Resumen: Aprovechar al máximo las instancias de EC2
  46. 46. © 2017, Amazon Web Services Siguientes pasos  Visitar la documentación de Amazon EC2  https://aws.amazon.com/documentation/ec2/  Iniciar una instancia y probar su aplicación.  https://aws.amazon.com/getting-started/tutorials/
  47. 47. © 2017, Amazon Web Services GRACIAS

×