PDF de programación - Performance y Escalabilidad del Kernel Linux aplicado a Redes de Alta Velocidad

Imágen de pdf Performance y Escalabilidad del Kernel Linux aplicado a Redes de Alta Velocidad

Performance y Escalabilidad del Kernel Linux aplicado a Redes de Alta Velocidadgráfica de visualizaciones

Publicado el 1 de Marzo del 2017
1.009 visualizaciones desde el 1 de Marzo del 2017
713,5 KB
113 paginas
Creado hace 17a (18/04/2007)
Performance y Escalabilidad del Kernel Linux

aplicado a Redes de Alta Velocidad

Matías Zabaljáuregui

Trabajo final para obtener el grado de
Licenciado en Informática

de la

Facultad de Informática,

Universidad Nacional de La Plata,

Argentina

Director: Lic. Javier Díaz

Co-director: Ing. Luis Marrone

La Plata, Abril de 2007

A mis viejos, Nelly y Héctor

Agradecimiento

A Javier Díaz, por guiarme en estos primeros pasos.

Indice General

1 Introducción

1.1 Evolución en tecnologías y el crecimiento del tráfico de red . . . .
1.2 Los Problemas actuales del procesamiento de red . . . . . . . . .
1.2.1 La intrusión del sistema operativo . . . . . . . . . . . . .
1.2.2 Accesos a memoria principal y la inefectividad de la me-
moria cache . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2.3 Buffering y las copias de datos de aplicaciones
. . . . . .
1.2.4 Computación de protocolos . . . . . . . . . . . . . . . . .
1.3 El objetivo y la estructura de la tesis . . . . . . . . . . . . . . . .
1.3.1 El objetivo . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3.2 La estructura . . . . . . . . . . . . . . . . . . . . . . . . .

5
5
7
7

10
11
11
12
13
14

2 El hardware involucrado en las comunicaciones y los factores

15
que condicionan la performance
15
2.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
15
2.2 Network Interface Controllers . . . . . . . . . . . . . . . . . . . .
2.3 Tecnología de buses de entrada/salida . . . . . . . . . . . . . . .
17
2.4 Transferencias entre los dispositivos de E/S y la memoria principal 19
21
2.5 La latencia de la memoria principal y la inefectividad de la cache
¿Por que es un problema la latencia de memoria principal? 22
23
24
25

2.5.1
2.5.2 Accesos a memoria principal de TCP/IP . . . . . . . . . .
2.5.3
. . . . . . . . . . . . .
2.5.4 La regla 1GHz/1Gbps . . . . . . . . . . . . . . . . . . . .

Inefectividad de la memoria cache

3 El Subsistema de red en el kernel Linux 2.6

3.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2 Mecanismos de Linux involucrados en el procesamiento de red . .

27
27
28

1

Indice General

3.2.1
Interrupciones y funciones diferidas . . . . . . . . . . . . .
3.2.2 La estructura softnet data . . . . . . . . . . . . . . . . . .
3.2.3 Los socket buffers
. . . . . . . . . . . . . . . . . . . . . .
3.3 El procesamiento de red . . . . . . . . . . . . . . . . . . . . . . .
3.3.1 Procesamiento de conexión . . . . . . . . . . . . . . . . .
3.3.2 Procesamiento de recepción . . . . . . . . . . . . . . . . .
3.3.3 Procesamiento de transmisión . . . . . . . . . . . . . . . .
Identificando componentes del procesamiento TCP/IP . . . . . .

3.4

4 Clasificando los costos del procesamiento de red

4.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2 Operaciones DTO . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1 Transferencia de datos entre dominios de protección . . .
4.2.2 Application Programming Interfaces . . . . . . . . . . . .
4.2.3 Manipulación de datos . . . . . . . . . . . . . . . . . . . .
4.2.4 Transferencia de los datos desde la NIC a la memoria prin-
cipal utilizando la técnica PIO . . . . . . . . . . . . . . .
4.3 Operaciones NDTO . . . . . . . . . . . . . . . . . . . . . . . . .
4.3.1 Creación y manipulación de buffers de red . . . . . . . . .
4.3.2 Operación del sistema operativo . . . . . . . . . . . . . .
4.3.3 Operaciones específicas de los protocolos . . . . . . . . . .
4.4 Costos DTO versus costos NDTO . . . . . . . . . . . . . . . . . .

2

28
32
33
33
33
34
35
35

38
38
38
38
41
43

43
44
44
45
45
45

5 La escalabilidad de TCP/IP en Linux para arquitecturas SMP 48
48
49
52
53
54
55

5.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.2 Multiprocesamiento
. . . . . . . . . . . . . . . . . . . . . . . . .
5.3 Paralelización de protocolos . . . . . . . . . . . . . . . . . . . . .
5.3.1 Formas de paralelismo . . . . . . . . . . . . . . . . . . . .
5.3.2 Niveles de paralelismo . . . . . . . . . . . . . . . . . . . .
5.4 El kernel Linux 2.6 en arquitecturas SMP . . . . . . . . . . . . .
5.4.1 El Controlador programable avanzado de interrupciones
de E/S . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5 Problemas de Escalabilidad de TCP/IP en Linux . . . . . . . . .
5.5.1 Afinidad de procesos e interrupciones a CPUs . . . . . . .

6 Reduciendo la intrusión del sistema operativo

Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.1
6.2
Intrusión del Sistema Operativo . . . . . . . . . . . . . . . . . . .
6.3 La evolución de los sistemas operativos en búsqueda de menor
intrusión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3.1 Kernel monolítico
. . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . .
6.3.2 El microkernel

55
58
60

61
61
62

67
67
69

Indice General

6.3.3 Kernel verticalmente estructurado . . . . . . . . . . . . .
6.3.4 El próximo paso: un kernel activo . . . . . . . . . . . . . .

7 Proyectos Relacionados

7.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.2 Evolución del procesamiento de red, las primeras optimizaciones
7.3 Propuestas más recientes . . . . . . . . . . . . . . . . . . . . . . .
7.3.1 Mejorando la recepción en el driver/NIC . . . . . . . . . .
7.3.2 TOE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.3.3 Onloading . . . . . . . . . . . . . . . . . . . . . . . . . . .
7.4 Arquitectura de los servicios y la E/S asincrónica . . . . . . . . .
7.4.1 Modelos de aplicaciones . . . . . . . . . . . . . . . . . . .
7.4.2 AIO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

8 Un prototipo básico y los resultados preliminares

8.1
Introducción . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8.2 Diseño e implementación del prototipo . . . . . . . . . . . . . . .
8.3 Algunas mediciones y resultados preliminares . . . . . . . . . . .
8.3.1 Máquinas de prueba . . . . . . . . . . . . . . . . . . . . .
8.3.2 Herramientas de Medición e Instrumentación: Sar, Opro-
. . . . . . . . . . . . . . . . . . . . . . . . .
8.3.3 Las pruebas realizadas y algunos comentarios sobre los
primeros resultados . . . . . . . . . . . . . . . . . . . . . .

file y Netperf

3

70
71

74
74
75
80
80
82
83
86
86
87

89
89
89
92
92

93

93

9 Conclusiones y trabajo futuro

105
9.1 Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Indice de Figuras

1.1 Diferencias relativas en la evolución de las tecnologías [14] . . . .

3.1 Componentes del procesamiento TCP/IP . . . . . . . . . . . . .

4.1 Distribución de los costos de procesamiento de TCP/IP . . . . .

5.1 Configuración multi-APIC con dos procesadores [7] . . . . . . . .

6.1 Kernel Monolítico . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.2 Kernel Vertical
. . . . . . . . . . . . . . . . . . . . . . . . . . . .
6.3 Kernel Activo . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

10

36

46

56

68
70
72

90
8.1 Diagrama del prototipo - Proceso de transmisión . . . . . . . . .
8.2 Diagrama del prototipo - Proceso de recepción . . . . . . . . . .
91
8.3 Diagrama de bloques de la motherboard utilizada en las pruebas 102

4

Capítulo 1

Introducción

1.1 Evolución en tecnologías y el crecimiento del tráfi-

co de red

La combinación de nuevas tecnologías de redes de alta velocidad (con capaci-
dades de transmisión en el orden de Gigabits por segundo, como Infiniband y
Ethernet 10Gbps) y la capacidad de cómputo en los procesadores de última ge-
neración han impulsado el nacimiento de nuevos paradigmas de procesamiento
paralelo y distribuido. Sin embargo, en esta evolución, el diseño de los sistemas
operativos de propósito general y las arquitecturas de hardware más utilizadas
en servidores, estaciones de trabajo y dispositivos de red han comenzado a dar
señales de limitaciones con respecto a la escalabilidad.

El crecimiento exponencial en las capacidades de transmisión provistas por
los nuevos estándares de red han superado ampliamente, en términos relativos,
el incremento en el poder de cómputo de la tecnología actual de computadoras.
Desde el año 1995 hasta 2002, el estandard IEEE Ethernet ha evolucionado
desde una velocidad máxima de 100 Mbps a 10 Gbps, un incremento de dos
órdenes de magnitud. Sin embargo, en el mismo período la Ley de Moore indica
una mejora de hasta 25 veces en la capacidad de los procesadores, resultando en
una clara diferencia relativa en la evolución de estas tecnologías. Las soluciones
de capas inferiores de la pila TCP/IP ofrecen capacidades de transmisión de
datos lo suficientemente rápidas y a costos tan razonables que están dejando
de ser de ser sólo tecnologías de comunicaciones para ser usada también como
tecnologías de backplane (ya fueron planificadas futuras versiones de Ethernet
a velocidades de 40 y 100 Gbps).

Internet, y las aplicaciones que ésta posibilita, han transformado a las ar-
quitecturas de los Data Centers, desde un modelo sencillo de único servidor a

5

1.1. Evolución en tecnologías y el crecimiento del tráfico de red

6

un modelo multi-tier en el cual servidores web, servidores de aplicación, bases
de datos y servidores de almacenamiento trabajan juntos para responder a ca-
da requerimiento de un cliente. Como resultado, la performance general de las
aplicaciones se ha vuelto más dependiente de la eficiencia en las comunicaciones.
El Protocolo de Control de transmisión (Transmission Control Protocol o
TCP) es el protocolo más usado para comunicaciones de datos confiables tanto
en Internet como en redes locales. TCP es la capa de transporte en la pila de
protocolos TCP/IP y provee la entrega ordenada y garantizada de los datos a las
aplicaciones corriendo en cada uno de los extremos. Éste protocolo suele usarse
junto con el Protocolo de Interne
  • Links de descarga
http://lwp-l.com/pdf2499

Comentarios de: Performance y Escalabilidad del Kernel Linux aplicado a Redes de Alta Velocidad (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad