Implementación de Herramientas de Cómputo en la Nube para ...
EC2: Cómputo en la nube a profundidad
-
Upload
amazon-web-services-latam -
Category
Technology
-
view
559 -
download
0
Transcript of EC2: Cómputo en la nube a profundidad
© 2016, Amazon Web Services, Inc. or its Affiliates. All rights reserved.
Alejandro Flores, Arquitecto de Soluciones
Mayo 26, 2016
EC2
Cómputo en la nube a profundidad
Amazon EC2 es grande
Opciones de Compra
APIsInstancias
Red
Instancias EC2
Host Server
Hypervisor
Guest 1 Guest 2 Guest n
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.largem4.xlarge
m4.2xlarge
m4.4xlarge
m4.10xlarge
x1.32xlarge
2016
Qué esperar de esta sesión ?
• Revisión Instancias X1
• 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
2016
Instancias X1 2016
Lanzamiento Oficial
• Lanzamiento oficial 18 de Mayo de 2016
http://amzn.to/20wJbKk
2016
Alto Desempeño
• Tipo x1.32xlarge
• 2TB Memoria (DDR4)
• 128 vCPU’s
• Intel Xeon E7 8880 v3 (Haswell)
• Tecnología Intel Transactional Synchronization
Extensions (TSX) para desempeño en
procesamiento transaccional en memoria
• Tecnología Intel Advanced Vector Extensions 2
(Intel AVX2) para expansión de comandos
numéricos a 256 bits
Alto Rendimiento de Almacenamiento
• 10Gbps de ancho de banda dedicado para
EBS
• 10Gbps de ancho de banda para red
• Optimizada para EBS sin costo adicional
• Instancia certificada para ambientes de
producción de SAP HANA en AWS
• S/4 HANA
• Business Suite en HANA (SoH)
• Business Warehouse en HANA
(BW)
• DataMart Solutions en HANA
Alta Disponibilidad y Confiabilidad
• Single Device Data Correction
(SDDC+1)• Detecta y corrige errores multi-bit
• CloudFormation+EC2 Auto Recovery =
HA/DR
• Para SAP HANA, se puede utilizar HANA
System Replication (HSR)
Reduce Costos y reduce esfuerzos de
administración
• Disponible Bajo Demanda e Instancia Reservada
• Actualmente disponible en:• US East (Virginia)
• US West (Oregon)
• EU (Ireland)
• EU (Frankfurt)
• Asia Pacific (Tokyo)
• Asia Pacific (Singapore)
• Asia Pacific (Sydney)
• Más regiones muy pronto ...
Quiero usar las Instancias X1 !!
• Llenar la forma en línea para solicitar el acceso a las
instancias
• Leer la documentación en el sitio de AWS
Ofreciendo desempeño de
cómputo en EC2
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
• 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
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
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
Ejemplo: Aplicación Web
• MediaWiki instalado en un servidor Apache con 140
páginas de contenido
• Incremento de carga en intervalos de tiempo
Ejemplo: Aplicación Web
• Estadísticas de Memoria
Ejemplo: Aplicación Web
• Estadísticas de Disco
Ejemplo: Aplicación Web
• Estadísticas de Red
Ejemplo: Aplicación Web
• Estadísticas de CPU
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
Instrucciones de CPU y
Niveles de Protección
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
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
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
Tip: Usar AMIs PV-HVM con EBS
Manejo del tiempo
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)
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
Control de Estados C y P
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
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)
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
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
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
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
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"
Ofreciendo desempeño de I/O
en EC2
Virtualización de I/O y Dispositivos
• Split Driver Model
• Intel VT-d
• Paso directo para dispositivos dedicados
• Enhanced Networking
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
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
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
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 CPUVirtual
Memory
CPU
Scheduling
Sockets
Application
Tip: Usar Enhanced Networking
• Mayor cantidad de paquetes por segundo
• Menor varianza en latencia
• El Sistema Operativo de la instancia debe soportarlo
Resumen
• Las nuevas Instancias X1 están diseñadas para ejecutar
aplicaciones en memoria o bases de datos en memoria
• 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
Gracias!