Mejorando el desempeño de una red Gigabit

Anuncio
Mejorando el
desempeño de una red
Gigabit Ethernet en un
cluster Linux
Raúl Hormazábal y Mario Medina
Depto. Ing. Eléctrica
Universidad de Concepción
Autores
Raúl Hormazábal
Ing. Civil Electrónico
UdeC Dic. 2007
Actualmente en
Claro, S. A.
Mario Medina
Prof. guía
Cluster DIE UdeC
Cluster de computadores corriendo
Linux
Cluster DIE UdeC
Cluster de computadores corriendo
Linux
Cluster DIE UdeC
6 nodos HP Proliant ML110 G2
Pentium 4, 3.2 GHz, 800 MHz FSB
1 GiB RAM, DDR 3200
2 NIC Intel PRO/1000
3 ranuras PCI 32 bits 66MHz
2 discos Seagate Cheetah, 72 GiB,
15K RPM
NIC Intel Pro/1000
Tarjeta de red Gigabit Ethernet
Par trenzado (1000Base-T)
PCI 66 MHz, 32 bits
Aprox. US$20
Jumbo frames
Hasta 16KB
Switch
Dell PowerConnect 2716
Gigabit Ethernet, 16 bocas, US$184
Capacidad de conmutación 32 Gbps
Tasa de forwarding 23.7 Mpps
Soporta 802.3ad (Link Aggregation)
6 grupos, 4 enlaces por grupo
Soporta jumbo frames (9000 bytes)
Software
Ubuntu Linux
Kernel 2.6.19
Software de pruebas
iperf v 2.0.2
Herramienta para medir ancho de banda
NetPIPE v 4.X
Herramienta para medir latencia
Parámetros de interés
Latencia
Retardo en la comunicación entre
emisor y receptor
Throughput
Velocidad de transmisión de datos
Escalabilidad
Aplicabilidad a grandes números de
computadores
Throughput TCP
Throughput TCP depende de
MSS: Maximum Segment Size
Ligado a MTU de Ethernet
RTT: Round-Trip Time
Tasa de pérdida de paquetes
Throughput TCP
En un cluster, tasa de pérdida de
paquetes y tiempo de ida-y-vuelta
Bajos, pero fuera de nuestro control
Aumentar desempeño aumentando
el MSS y el MTU!
A mayor MSS, mayor es la tasa de
pérdidas
MTU de Ethernet
Ethernet: MTU típico de 1500 bytes
Headers TCP + IPv4 = 40 bytes
Headers TCP + IPv6 = 60 bytes
Todos los nodos en una subred
deben tener el mismo MTU
Permite compatibilidad entre redes
802.3 (10/100/1000 Mbps), 802.11,
802.5, etc.
Jumbo frames
MTU = 1500
Diseñado para velocidades bajas y
tasas de error altas
MTU mayor que 1500?
Reduce interrupciones a la CPU
Transfiere más datos a menor costo
Se ha “estandarizado” a MTU=9000
Aumentando el
throughput
Usar interfaces de red en paralelo
Dividir el tráfico de red
NIC teaming
Channel bonding
Etherchannel
Port trunking
Link aggregation
Channel bonding
Método para combinar enlaces físicos
de red en un enlace lógico con el fin de
aumentar las velocidades de
transferencia de datos
Beneficios
Enlace de alta disponibilidad
Tolerancia a fallos
Incremento de la capacidad del enlace
Reutilización del hardware existente
Channel bonding
Modos de bonding
0 ó balance-rr
1 ó active-backup
2 ó balance-xor
3 ó broadcast
4 ó 802.3ad
5 ó balance-tlb
6 ó balance-alb
Modos de bonding
balance-rr: Política Round-Robin
Tolerante a fallos y balance de carga
active-backup: Sólo un interfaz activa a
la vez, las otras actúan como backups
Tolerante a fallos
balance-xor: Asigna interfaz como
función del MAC del destino
Tolerante a fallos y balance de carga
Modos de bonding
broadcast: replica mensajes en
todas las interfaces
Tolerante a fallos
802.3ad: sigue estándar IEEE
802.3ad (dynamic link aggregation)
Divide interfaces en grupos de igual
velocidad y modo de transmisión
Modos de bonding
balance-tlb: balance de carga
adaptivo que redistribuye tráfico de
salida en la interfaz
balance-alb: balance de carga
adaptivo que redistribuye tráfico de
salida y de entrada a la interfaz
Información de entrada via ARP
Bonding en Linux
Implementado como driver del
kernel
Activando bonding en
Linux
Línea de comando linux
ifdown eth0
ifdown eth1
modprobe bonding mode=0 miimon=100
ifconfig bond0 192.168.1.100 up
ifenslave bond0 eth0
ifenslave bond0 eth1
Configurando el switch
Modos active-backup, balance-tlb,
balance-alb: switch no varía
Modos balance-rr, balance-xor,
broadcast: requieren crear grupos
de enlaces en el switch
Modo 802.3ad: requiere crear
grupos en un switch que soporte
IEEE802.3ad
Efecto del MTU y
bonding
Parámetros de la red
MTU es 1500, 3000 y 9000 bytes
1 y 2 interfaces de red
Comando iperf opción -l
Efecto de MTU
MTU 1500
MTU 3000
MTU 9000
1400
Throughput (Mbps)
1200
1000
800
600
400
200
0
1
2
Interfaces de red
Throughout en función
de flujos TCP/IP
Parámetros de la red
MTU es 9000 bytes
Entre 1 y 10 flujos de datos
2 y 3 interfaces de red
Comando iperf
Throughput en función
de flujos TCP/IP
Buffer de datos
Iperf por omisión transfiere datos
en bloques de 8KB
Aumento de tamaño de buffers
envía más datos en paquete TCP a
la interfaz
NIC recibe paquete TCP y genera
frames Ethernet correspondientes
Efecto del buffer de
datos
Parámetros de la red
MTU es 9000 bytes
6 flujos de datos
2 y 3 interfaces de red
Comando iperf opción -l
Efecto del buffer de
datos
Ventana de TCP
Cuántos datos puede enviar el
emisor antes de esperar por un
ACK del receptor?
TCP limita ventana a 64 KB
Linux implementa TCP Large Windows
Extensions (RFC1323)
Permite ventanas de hasta 1 GB
Efecto de la ventana de
TCP
Parámetros de la red
MTU es 9000 bytes
6 flujos de datos
2 y 3 interfaces de red
Comando iperf opción -w
Efecto de ventana de
TCP
Dónde está el cuello de
botella?
Ancho de banda no aumenta al
Agregar más flujos de TCP/IP
Aumentar buffer de datos
Agregar más tarjetas de red
Dónde está el cuello de botella?
Dónde está el cuello de
botella?
Bus de Entrada/Salida
Placa madre utilizada tiene bus PCI 32
bits 66 MHz
Límite de 2.1 Gbps
Solución?
Nuevas tecnologías
Buses de entrada/salida
Bus PCI
Bus PCI 64-bit/100 MHz: 800 MB/s
Bus PCI-X 64-bit/133 MHz: 1.066 GB/s
Bus PCI Express
Bus PCI Express x1: 250 MB/s
Bus PCI Express x16: 4 GB/s
Bus PCI Express 2.0 x32: 8 GB/s
Cuándo usar jumbo
frames?
En una red LAN cuando el hardware
lo permite
Para aplicaciones que realizan
grandes transferencias de datos
Sistema de archivos paralelo
PVFS: Parallel Virtual File System
SANs con iSCSI
Problemas de jumbo
frames
Aplicabilidad
Muchas aplicaciones intercambian
mensajes pequeños
Para muchas aplicaciones, lo
importante es la latencia
Jumbo frames puede aumentar latencia
Switches con QoS
Problemas de jumbo
frames
Compatibilidad
No soportados por estándar 802.11
No soportados por 10/100 Mbps
Ethernet
Problemas con MTU Path Discovery
Se hace via ICMP
Muchos routers botan paquetes ICMP
Problemas de jumbo
frames
Desempeño
Traslada el cuello de botella al bus de
entrada/salida
Problemas con CRC-32 de Ethernet
Pierde efectividad para frames grandes
A futuro
Channel bonding
Ya se usa en Wi-Fi Super-G
10-Gigabit Ethernet
Probablemente con jumbo frames
TCP Offloading Engines
Infiniband
10-Gigabit Ethernet
IEEE Std 802.3-2005
Modo de operación
full-duplex
No se usa CSMA/CD
57% de los
supercomputadores
Top500 la usa
En el futuro
40-Gigabit ethernet
100-Gigabit ethernet
Infiniband
Enlaces seriales de comunicación
punto-a-punto de alta velocidad
Muy usados en computación de alto
desempeño (HPC)
30% de los supercomputadores TOP500
usan InfiniBand
Linux soporta InfiniBand desde 2006
Infiniband
Enlaces de 2.5, 5 ó 10 Gbps
Agregados en grupos de 4 ó 12
enlaces
Grupo de 12 enlaces Quad-Data-Rate
transmite a 96 Gbps
Nodos conectados
via tramas de switches
InfiniBand
Precios
Tarjeta PCI-Express, 10 Gbps (QDR)
1 puerta: US$130
2 puertas: US$750
Switch HP 4X DDR, 24 puertas, 20
Gbps
US$4800
En conclusión
Nuestro cluster es usado como
banco de pruebas de sistema de
archivos paralelo
Jumbo frames (MTU = 9000)
2 Interfaces Gigabit Ethernet por nodo
Descargar