EC2 Cómputo en la nube a profundidad

970 visualizaciones

Publicado el

2016 AWS Summit Bogotá - EC2 Cómputo en la nube a profundidad

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
970
En SlideShare
0
De insertados
0
Número de insertados
8
Acciones
Compartido
0
Descargas
48
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

EC2 Cómputo en la nube a profundidad

  1. 1. © 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved. Alejandro Flores, Arquitecto de Soluciones Abril 06, 2016 EC2 Cómputo en la nube a profundidad
  2. 2. Amazon EC2 es grande Opciones de Compra APIs Instancias Red
  3. 3. Instancias EC2 Host Server Hypervisor Guest 1 Guest 2 Guest n
  4. 4. Instancias EC2 : Historia 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
  5. 5. Qué esperar de esta sesión ? • Definir el desempeño de un sistema y cómo se caracteriza para diferentes cargas de trabajo • Cómo las instancias EC2 ofrecen un óptimo desempeño, manteniendo flexibilidad y agilidad • Cómo aprovechar de mejor manera el uso de las instancias EC2
  6. 6. Definiendo el desempeño
  7. 7. Reserva de un servidor • Los servidores son reservados para realizar trabajos • El desempeño de mide de manera diferente dependiendo del trabajo que se realice
  8. 8. • Lo que desempeño significa, depende de la perspectiva: • Tiempo de respuesta • Rendimiento • Consistencia Desempeño = perspectiva Aplicación Librerías de Sistema Llamadas a sistema Kernel Dispositivo Carga
  9. 9. Factores de desempeño Recurso Factores Indicadores CPU Sockets, número de núcleos, frecuencia de reloj, capacidad Utilización de CPU, tamaño de la cola de ejecución Memoria Capacidad Memoria libre, paginación, swapping Interfaz de Red Ancho de Banda Máximo, paquetes Cantidad paquetes recibidos, transferencia de paquetes sobre el máximo ancho de banda Disco IOPS, Desempeño Tamaño de cola en espera, utilización de dispositivos, errores en los dispositivos
  10. 10. Utilización de Recursos • Dada una carga, qué tan eficientemente se utilizan los recursos • Un recurso con utilización del 100% no puede recibir o atender más peticiones • Baja utilización indica que se han reservado más recursos de los necesarios
  11. 11. Ejemplo: Aplicación Web • MediaWiki instalado en un servidor Apache con 140 páginas de contenido • Incremento de carga en intervalos de tiempo
  12. 12. Ejemplo: Aplicación Web • Estadísticas de Memoria
  13. 13. Ejemplo: Aplicación Web • Estadísticas de Disco
  14. 14. Ejemplo: Aplicación Web • Estadísticas de Red
  15. 15. Ejemplo: Aplicación Web • Estadísticas de CPU
  16. 16. Selección de instancia = optimización • La selección de una instancia es equivalente a la optimización de los recursos • Dar de baja instancias es tan fácil como adquirir nuevas • Alinear el tipo de carga con el tipo de instancia óptimo
  17. 17. Ofreciendo desempeño de cómputo en EC2
  18. 18. Instrucciones de CPU y Niveles de Protección
  19. 19. Instrucciones de CPU y Niveles de Protección • CPU tiene dos niveles de protección: Kernel y Aplicación • Instrucciones privilegiadas no se pueden ejecutar en modo usuario para proteger el sistema. • Aplicaciones apalancan las llamadas al sistema al kernel Instrucciones privilegiadas: • Inicio de I/O • Acceso a I/O de Dispositivos (red, disco) • Manejo del tiempo • Pausa CPU Aplicación Kernel
  20. 20. Ejemplo: Llamadas al sistema de una aplicación web [ec2-user@ip-10-0-121-0 ~]$ sudo strace -c -p 2440 Process 2440 attached ^CProcess 2440 detached % time seconds usecs/call calls errors syscall ------ ----------- ----------- --------- --------- ---------------- 0.00 0.000000 0 931 11 read 0.00 0.000000 0 887 write 0.00 0.000000 0 121 open 0.00 0.000000 0 154 close 0.00 0.000000 0 1357 32 stat 0.00 0.000000 0 341 fstat 0.00 0.000000 0 99 11 lstat 0.00 0.000000 0 865 poll 0.00 0.000000 0 121 mmap 0.00 0.000000 0 121 munmap 0.00 0.000000 0 220 brk 0.00 0.000000 0 11 rt_sigaction 0.00 0.000000 0 11 rt_sigprocmask 0.00 0.000000 0 22 writev 0.00 0.000000 0 66 22 access
  21. 21. Porqué PV-HVM es más rápido que PV ? • PV-HVM permite que las aplicaciones llamen directamente al kernel • PV la aplicación tiene que pasar por el VMM • Las aplicaciones basadas en llamadas a sistema, son las más afectadas Aplicación Kernel VMM Aplicación Kernel VMM Kernel Aplicación Bare Metal PV PV-HVM Antes de Intel VT-x Después de Intel VT-x
  22. 22. Tip: Usar AMIs PV-HVM con EBS
  23. 23. Manejo del tiempo
  24. 24. Manejo del tiempo • El manejo del tiempo puede ser costoso para una instancia • Rutinas como gettimeofday() resultan en una rutina de lectura a una fuente de tiempo que termina en una transición hacia el ring0 (kernel)
  25. 25. Tip: Usar TSC como fuente de tiempo Cambiarlo por: # cat /sys/devices/system/cl*/cl*/available_clocksource xen tsc hpet acpi_pm # cat /sys/devices/system/cl*/cl*/current_clocksource xen # emacs /boot/grub/menu.list && reboot # cat /proc/cmdline root=/dev/xvda1 ro clock source=tsc
  26. 26. Control de Estados C y P
  27. 27. Instancias EC2 • Intel Turbo Boost Technology • Control de los Estados P y C Model vCPU Memory (GiB) EBS (Mbps) c4.8xlarge 36 60 4,000 d2.8xlarge 36 244 HDD Storage m4.10xlarge 40 160 4,000
  28. 28. Controles de Estado C y P • Controles de Estado C y P • Estado-C • Controla el nivel de reposo al que puede llegar un núcleo • Numerados del C0 (el núcleo está trabajando normalmente y ejecutando instrucciones) al C6 (el núcleo está apagado) • Estado-P • Controla el nivel de desempeño deseado en un núcleo • Numerados del P0 (el mayor desempeño en el núcleo en donde tiene permitido usar la tecnología Turbo Boost de Intel que permite incrementar la frecuencia), y luego va del P1 (solicita la máxima frecuencia base) al P15 (solicita la mínima frecuencia posible)
  29. 29. Controles de Estado C y P • Beneficios • Incrementar el desempeño del procesador • Reducir latencia • Optimización de una instancia para una carga de trabajo o aplicación específica
  30. 30. Controles de Estado C y P • Ejemplo (Mayor desempeño con máxima frecuencia Turbo Boost) Herramienta turbostat (disponible por defecto en las instancias Amazon Linux) [ec2-user ~]$ sudo turbostat stress -c 2 -t 10 stress: info: [30680] dispatching hogs: 2 cpu, 0 io, 0 vm, 0 hdd stress: info: [30680] successful run completed in 10s pk cor CPU %c0 GHz TSC SMI %c1 %c3 %c6 %c7 %pc2 %pc3 %pc6 %pc7 Pkg_W RAM_W PKG_% RAM_% 5.54 3.44 2.90 0 9.18 0.00 85.28 0.00 0.00 0.00 0.00 0.00 94.04 32.70 54.18 0.00 0 0 0 0.12 3.26 2.90 0 3.61 0.00 96.27 0.00 0.00 0.00 0.00 0.00 48.12 18.88 26.02 0.00 0 0 18 0.12 3.26 2.90 0 3.61 0 1 1 0.12 3.26 2.90 0 4.11 0.00 95.77 0.00 0 1 19 0.13 3.27 2.90 0 4.11 0 2 2 0.13 3.28 2.90 0 4.45 0.00 95.42 0.00 0 2 20 0.11 3.27 2.90 0 4.47 0 3 3 0.05 3.42 2.90 0 99.91 0.00 0.05 0.00 0 3 21 97.84 3.45 2.90 0 2.11 ... 1 1 10 0.06 3.33 2.90 0 99.88 0.01 0.06 0.00 1 1 28 97.61 3.44 2.90 0 2.32 ... 10.002556 sec
  31. 31. Controles de Estado C y P • Ejemplo (Limitar el Estado C) Herramienta turbostat (disponible por defecto en las instancias Amazon Linux) [ec2-user ~]$ sudo vim /boot/grub/grub.conf # created by imagebuilder default=0 timeout=1 hiddenmenu title Amazon Linux 2014.09 (3.14.26-24.46.amzn1.x86_64) root (hd0,0) kernel /boot/vmlinuz-3.14.26-24.46.amzn1.x86_64 root=LABEL=/ console=ttyS0 intel_idle.max_cstate=1 initrd /boot/initramfs-3.14.26-24.46.amzn1.x86_64.img
  32. 32. Tip: Estado P para AVX2 • Las cargas de trabajo de tipo AVX o AVX2 (Intel Advanced Vector Extensions) se desenvuelven mejor en frecuencias bajas porque pueden usar mayor energía • Al ejecutar el procesador a baja frecuencia, deshabilitando Turbo Boost, se reduce la cantidad de energía usada y mantiene la velocidad de manera consistente
  33. 33. Tip: Estado P para AVX2 • Ejemplo (Deshabilitar Turbo Boost, solicitando el estado P1) • Ejemplo (Habilitar Turbo Boost, solicitando el estado P0) [ec2-user ~]$ sudo sh -c "echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo" [ec2-user ~]$ sudo sh -c "echo 0 > /sys/devices/system/cpu/intel_pstate/no_turbo"
  34. 34. Ofreciendo desempeño de I/O en EC2
  35. 35. Virtualización de I/O y Dispositivos • Split Driver Model • Intel VT-d • Paso directo para dispositivos dedicados • Enhanced Networking
  36. 36. Split Driver Model : Red Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver Frontend driver Backend driver Device Driver Physical CPU Physical Memory Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  37. 37. Split Driver Model : Red Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver Frontend driver Backend driver Device Driver Physical CPU Physical Memory Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  38. 38. Split Driver Model : Red Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver Frontend driver Backend driver Device Driver Physical CPU Physical Memory Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  39. 39. Split Driver Model : Red Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver Frontend driver Backend driver Device Driver Physical CPU Physical Memory Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  40. 40. Split Driver Model : Red Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver Frontend driver Backend driver Device Driver Physical CPU Physical Memory Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  41. 41. Paso Directo al Dispositivo: Enhanced Networking • El dispositivo físico de red expone una función virtual a la instancia • Requiere un driver especial: • El sistema operativo de la instancia necesita saber sobre el driver
  42. 42. Paso Directo al Dispositivo: Enhanced Networking Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver NIC Driver Backend driver Device Driver Physical CPU Physical Memory SR-IOV Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  43. 43. Paso Directo al Dispositivo: Enhanced Networking Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver NIC Driver Backend driver Device Driver Physical CPU Physical Memory SR-IOV Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  44. 44. Paso Directo al Dispositivo: Enhanced Networking Hardware Driver Domain Guest Domain Guest Domain VMM Frontend driver NIC Driver Backend driver Device Driver Physical CPU Physical Memory SR-IOV Network Device Virtual CPU Virtual Memory CPU Scheduling Sockets Application
  45. 45. Tip: Usar Enhanced Networking • Mayor cantidad de paquetes por segundo • Menor varianza en latencia • El Sistema Operativo de la instancia debe soportarlo
  46. 46. Revisión de Instancias I2
  47. 47. Instancias I2 • Proveen almacenamiento SSD • Proveen IOPS a bajo costo • Optimizadas para alta demanda de I/O aleatorio Model vCPU Memory (GiB) Storage Read IOPS Write IOPS 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
  48. 48. Cesión en kernels previos a la versión 3.8.0 • Previo a la versión 3.8.0, se requiere un Mapa de Cesiones • El Mapa de Cesiones requiere de operaciones costosas debido a flushes de TLB (Translation Lookaside Buffer) read(fd, buffer,…)
  49. 49. Cesión en kernels posteriores a la versión 3.8.0 • El Mapa de Cesiones está definido en un pool • La información es copiada o extraída del pool Copy to and from grant pool
  50. 50. Tip: Usar kernels posteriores a la versión 3.8.0 • Amazon Linux 13.09 o mayor • Ubuntu 14.04 o mayor • RHEL7 o mayor • Etc.
  51. 51. Resumen • Usar PV-HVM • Usar TSC para el manejo de tiempo • Aprovechar los controles de Estado C y P • Usar Enhanced Networking • Usar kernels posteriores a la versión 3.8.0
  52. 52. Gracias!

×