El sistema Shenango se planea utilizar en centros de datos.
/ фото
Según uno de los proveedores, los centros de datos tienen solo entre 20 y 40% de la capacidad computacional disponible. En condiciones de alta carga, este porcentaje . Esta distribución de recursos lleva a la aparición de los llamados "servidores zombis". Son máquinas que pasan la mayor parte del tiempo inactivas, desperdiciando energía eléctrica. Hoy en día, el 30% de los servidores en el mundo , consumiendo electricidad por un valor de $30 mil millones al año.
Decidieron combatir el uso ineficiente de recursos computacionales en el MIT.
Un equipo de ingenieros un sistema de balanceo de carga para procesadores llamado Shenango. Su objetivo es monitorear el estado del buffer de tareas y redistribuir los procesos "atascados" (que no pueden obtener tiempo de CPU) a máquinas libres.
Cómo funciona Shenango
Shenango es una biblioteca de Linux en lenguaje C con bindings de Rust y C++. El código del proyecto y las aplicaciones de prueba han sido publicadas en GitHub.
La base de la solución es un algoritmo llamado IOKernel, que se ejecuta en un núcleo dedicado en un sistema multiprocesador. Gestiona las solicitudes al CPU mediante un marco , que permite a las aplicaciones interactuar directamente con los dispositivos de red.
IOKernel decide a qué núcleos asignar tareas específicas. El algoritmo también determina cuántos núcleos serán necesarios. Para cada proceso, se definen núcleos principales (guaranteed) y adicionales (burstable) — los segundos se activan en caso de un aumento repentino en el número de solicitudes al CPU.
La cola de solicitudes de IOKernel está organizada en forma de . Cada cinco microsegundos, el algoritmo verifica si todas las tareas asignadas al núcleo han sido completadas. Para ello, compara la ubicación actual de la "cabeza" del buffer con la posición anterior de su "cola". Si resulta que la cola ya estuvo en la lista en la verificación anterior, el sistema marca una sobrecarga del buffer y asigna un núcleo adicional al proceso.
Al distribuir la carga, se da prioridad a los núcleos en los que se ha ejecutado anteriormente un proceso similar y que aún permanece en caché, o a cualquier núcleo inactivo.

Shenango utiliza además el enfoque Los núcleos asignados para el funcionamiento de una sola aplicación supervisan la cantidad de tareas entre sí. Si un núcleo completa su lista de tareas antes que los demás, "asume" parte de la carga de los vecinos.
Ventajas y desventajas
Por ingenieros del MIT, Shenango puede procesar cinco millones de solicitudes por segundo y mantener un tiempo de respuesta promedio de 37 microsegundos. Los expertos afirman que, en algunos casos, la tecnología puede aumentar la tasa de utilización de procesadores en centros de datos hasta un 100%. Como resultado, los operadores de centros de datos podrán ahorrar en la compra y mantenimiento de servidores.
Potencial de la solución y especialistas de otras universidades. Según un profesor del instituto coreano, el sistema del MIT ayudará a reducir la latencia en el funcionamiento de los servicios web. Por ejemplo, será útil para las tiendas en línea. En días de ventas, incluso un segundo de retraso en la carga de la página conduce a una disminución del 11% en el número de visitas al sitio. La distribución rápida de la carga ayudará a atender a más clientes.
La tecnología todavía tiene desventajas: no soporta sistemas NUMA -sistemas, en los que los chips están conectados a diferentes módulos de memoria y no "se comunican" entre sí. En este caso, IOKernel puede regular el funcionamiento de un grupo separado de procesadores, pero no de todos los chips del servidor.

/ фото
Tecnologías similares
Entre otros sistemas de balanceo de carga para procesadores, destaca Arachne. Este calcula cuántos núcleos necesita la aplicación al inicio y distribuye los procesos de acuerdo con esa medida. Según los autores, la máxima latencia de la aplicación en Arachne es de alrededor de 10,000 microsegundos.
La tecnología se implementa como una biblioteca C++ para Linux, y su código fuente está disponible en .
Otro balanceador es ZygOS. Al igual que Shenango, esta tecnología utiliza el método de robo de trabajo para redistribuir procesos. Según los autores de ZygOS, la latencia promedio de las aplicaciones al usar esta herramienta es de alrededor de 150 microsegundos, y la máxima es de aproximadamente 450 microsegundos. El código del proyecto también .
Conclusiones
Los centros de datos modernos continúan expandiéndose, especialmente la tendencia de crecimiento es notable en el mercado de centros de datos hyperscale: en la actualidad, en el mundo 430 centros de datos hiperescalables, pero en los próximos años su número podría aumentar en un 30%. Por esta razón, las tecnologías de balanceo de carga de la CPU serán muy solicitadas. Sistemas como Shenango ya están por grandes corporaciones, y en el futuro el número de tales herramientas solo seguirá creciendo.
Publicaciones del Primer Blog sobre IaaS corporativo:
Fuente: habr.com
