ec2: cómputo en la nube a profundidad

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

Upload: amazon-web-services-latam

Post on 13-Apr-2017

559 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: 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

Page 2: EC2: Cómputo en la nube a profundidad

Amazon EC2 es grande

Opciones de Compra

APIsInstancias

Red

Page 3: EC2: Cómputo en la nube a profundidad

Instancias EC2

Host Server

Hypervisor

Guest 1 Guest 2 Guest n

Page 4: EC2: Cómputo en la nube a profundidad

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

Page 5: EC2: Cómputo en la nube a profundidad

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

Page 6: EC2: Cómputo en la nube a profundidad

Instancias X1 2016

Page 7: EC2: Cómputo en la nube a profundidad

Lanzamiento Oficial

• Lanzamiento oficial 18 de Mayo de 2016

http://amzn.to/20wJbKk

2016

Page 8: EC2: Cómputo en la nube a profundidad

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

Page 9: EC2: Cómputo en la nube a profundidad

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

Page 10: EC2: Cómputo en la nube a profundidad

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)

Page 11: EC2: Cómputo en la nube a profundidad

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 ...

Page 12: EC2: Cómputo en la nube a profundidad

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

Page 13: EC2: Cómputo en la nube a profundidad

Ofreciendo desempeño de

cómputo en EC2

Page 14: EC2: Cómputo en la nube a profundidad

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

Page 15: EC2: Cómputo en la nube a profundidad

• 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

Page 16: EC2: Cómputo en la nube a profundidad

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

Page 17: EC2: Cómputo en la nube a profundidad

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

Page 18: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• MediaWiki instalado en un servidor Apache con 140

páginas de contenido

• Incremento de carga en intervalos de tiempo

Page 19: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de Memoria

Page 20: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de Disco

Page 21: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de Red

Page 22: EC2: Cómputo en la nube a profundidad

Ejemplo: Aplicación Web

• Estadísticas de CPU

Page 23: EC2: Cómputo en la nube a profundidad

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

Page 24: EC2: Cómputo en la nube a profundidad

Instrucciones de CPU y

Niveles de Protección

Page 25: EC2: Cómputo en la nube a profundidad

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

Page 26: EC2: Cómputo en la nube a profundidad

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

Page 27: EC2: Cómputo en la nube a profundidad

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

Page 28: EC2: Cómputo en la nube a profundidad

Tip: Usar AMIs PV-HVM con EBS

Page 29: EC2: Cómputo en la nube a profundidad

Manejo del tiempo

Page 30: EC2: Cómputo en la nube a profundidad

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)

Page 31: EC2: Cómputo en la nube a profundidad

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

Page 32: EC2: Cómputo en la nube a profundidad

Control de Estados C y P

Page 33: EC2: Cómputo en la nube a profundidad

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

Page 34: EC2: Cómputo en la nube a profundidad

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)

Page 35: EC2: Cómputo en la nube a profundidad

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

Page 36: EC2: Cómputo en la nube a profundidad

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

Page 37: EC2: Cómputo en la nube a profundidad

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

Page 38: EC2: Cómputo en la nube a profundidad

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

Page 39: EC2: Cómputo en la nube a profundidad

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"

Page 40: EC2: Cómputo en la nube a profundidad

Ofreciendo desempeño de I/O

en EC2

Page 41: EC2: Cómputo en la nube a profundidad

Virtualización de I/O y Dispositivos

• Split Driver Model

• Intel VT-d

• Paso directo para dispositivos dedicados

• Enhanced Networking

Page 42: EC2: Cómputo en la nube a profundidad

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

Page 43: EC2: Cómputo en la nube a profundidad

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

Page 44: EC2: Cómputo en la nube a profundidad

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

Page 45: EC2: Cómputo en la nube a profundidad

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

Page 46: EC2: Cómputo en la nube a profundidad

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

Page 47: EC2: Cómputo en la nube a profundidad

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

Page 48: EC2: Cómputo en la nube a profundidad

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

Page 49: EC2: Cómputo en la nube a profundidad

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

Page 50: EC2: Cómputo en la nube a profundidad

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

Page 51: EC2: Cómputo en la nube a profundidad

Tip: Usar Enhanced Networking

• Mayor cantidad de paquetes por segundo

• Menor varianza en latencia

• El Sistema Operativo de la instancia debe soportarlo

Page 52: EC2: Cómputo en la nube a profundidad

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

Page 53: EC2: Cómputo en la nube a profundidad

Gracias!