El Maravilloso Mundo de Linux 2.6 - Aumentando la Escala -- NUMA y Maquinas Grandes

5 - Aumentando la Escala -- NUMA y Maquinas Grandes

[editar]
Tutorial creado por Joseph Pranevich. Extraido de: http://www.mononeurona.org/index.php?idp=416
24 de Octubre de 2005
El segundo de los cambios fundamentales en Linus 2.6 ha sido en la dirección exactamente opuesta: hacer Linux un kernel aceptable en servidores tan grandes como sea posible. (Algunos de estos servidores están basados en procesadores i386, otros no.) La gran diferencia en este sentido es el nuevo soporte en Linux para servidores NUMA. Tras la arquitectura SMP, NUMA (Non-Uniform Memory Access, o "Acceso No Uniforme a Memoria") es un paso más dentro del multiproceso: trae consigo una mayor eficiencia al trabajar con muchos procesadores. Los sistemas multiprocesador actuales fueron diseñados con las mismas limitaciones que los mono-procesador, ya que disponen de un único espacio de memoria para todos los procesadores. Al aumentar su número, la altísima tasa de contención entre las CPUs y el bus compartido de memoria crea un cuello de botella que obstaculiza el rendimiento. Los servidores NUMA están basados en la idea de que, para cada procesador, parte de la memoria está más cerca que el resto; así se evita la congestión de accesos. Una forma sencilla de entender su funcionamiento, y no del todo incorrecta, es imaginarse un sistema con tarjetas separadas, cada una con CPUs, memoria, y posiblemente otros componentes (como podría ser entrada/salida). Hay muchas tarjetas similares, que por supuesto pueden hablar entre sí; pero está claro que a cada CPU le será más fácil comunicarse con su memoria local, la de la misma tarjeta. Puede imaginarse la arquitectura NUMA como un cluster integrado en los niveles más bajos del hardware.

Para poder trabajar con estas nuevas máquinas NUMA, ha habido que adaptar Linux en varios sentidos para crear un modelo eficiente. Para empezar, ha sido necesario crear una API (Application Programmer Interface, o "Interfaz de Programación de Aplicaciones") de topología interna, que permita a los entresijos del kernel entender las relaciones que cada procesador y cada memoria tienen entre sí y con los dispositivos de entrada salida. Relacionado con lo anterior, el planificador de procesos [process scheduler] de Linux es ahora capaz de entender estas relaciones, e intentar optimizar las tareas haciendo el mejor uso posible de los recursos locales. Por otro lado, muchas máquinas NUMA se fabrican con "agujeros" en el espacio de memoria "entre" nodos. El nuevo kernel puede tener en cuenta estas discontinuidades de una forma razonable. Hay múltiples cambios internos que han ayudado al buen uso de los recursos en estos super-servidores, y que han permitido refinar el funcionamiento del kernel. Sin embargo, quedan bastantes posibilidades de mejora en este área, y mucho trabajo por hacer para conseguir un rendimiento óptimo. En el próximo año, veremos seguramente aún más mejoras en el soporte de máquinas de gama altísima.
[editar]

10 opiniones

Bienm.

Esta bien para los que apenas comenzamos.
dum
Me encanta linux.

Linux esta muy bien y todo eso y ya sabeis er resto me gustaria saber massobre linux.
Opinion.

Es una pagina muy buena ya que me aclaro las dudas que tenia sobre los archivos de linux.
Maravilloso mundo de linux.

Me parecen geniales estos tutoriales.
El kernel.

Muy buen artículo, me gustó. Espero que sigan haciendo más como este. Y arriba linux.
1 2 | siguiente >

Tutoriales relacionados con 'El Maravilloso Mundo de Linux 2.6'

Lo que sigue es una guía detallada de la configuración del núcleo, cubriendo detalles de... Más »

Autor y licencia de 'El Maravilloso Mundo de Linux 2.6'


Tutorial de Joseph Pranevich. Extraido de: http://www.mononeurona.org/index.php?idp=416 CopyLeft
Se permite la redistribución online sin modificaciones.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.