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
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. • 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. 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. 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. Ejemplo: Aplicación Web
• MediaWiki instalado en un servidor Apache con 140
páginas de contenido
• Incremento de carga en intervalos de tiempo
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
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
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
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)
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. 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. 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
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. 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. 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"
35. Virtualización de I/O y Dispositivos
• Split Driver Model
• Intel VT-d
• Paso directo para dispositivos dedicados
• Enhanced Networking
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. 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. 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. 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. 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. 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. 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. 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. 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. Tip: Usar Enhanced Networking
• Mayor cantidad de paquetes por segundo
• Menor varianza en latencia
• El Sistema Operativo de la instancia debe soportarlo
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. 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. 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. 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. 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