Nuevo equilibrador de carga de CPU MIT

El sistema Shenango está planeado para ser utilizado en centros de datos.


/ foto Marco Verch CC BY

Según uno de los proveedores, los centros de datos utilizan solo el 20-40% de la potencia informática disponible. Con cargas altas, esta cifra puede alcanzar el 60% . Esta distribución de recursos conduce a la aparición de los llamados "servidores zombie". Estas son máquinas que permanecen inactivas la mayor parte del tiempo, desperdiciando energía. Hoy, el 30% de los servidores del mundo no tienen trabajo , consumen electricidad a $ 30 mil millones al año.

El MIT decidió lidiar con el uso ineficiente de los recursos informáticos.

Un equipo de ingenieros ha desarrollado un sistema de equilibrio de carga para procesadores llamado Shenango. Su propósito es monitorear el estado del búfer de tareas y redistribuir procesos "atascados" (que no pueden recibir tiempo de procesador) para liberar máquinas.

Cómo funciona Shenango


Shenango es una biblioteca de Linux basada en C con enlaces Rust y C ++. El código del proyecto y las aplicaciones de prueba se publican en el repositorio en GitHub.

La base de la solución es el algoritmo IOKernel, que se ejecuta en un núcleo dedicado de un sistema multiprocesador. Gestiona las solicitudes de CPU utilizando el marco DPDK , que permite que las aplicaciones interactúen directamente con los dispositivos de red.

IOKernel decide qué núcleos pasar una tarea en particular. El algoritmo también decide cuántos núcleos se necesitan. Para cada proceso, se definen los núcleos principales (garantizados) y los adicionales (burstables); los segundos se lanzan en caso de un fuerte aumento en el número de solicitudes a la CPU.

La cola de solicitudes IOKernel está organizada como un búfer de anillo . Cada cinco microsegundos, el algoritmo verifica si se han completado todas las tareas asignadas al núcleo. Para hacer esto, compara la ubicación actual de la "cabeza" del búfer con la posición anterior de su "cola". Si resulta que la cola ya estaba en la cola en el momento de la verificación anterior, el sistema observa la sobrecarga del búfer y asigna un núcleo adicional para el proceso.

Al distribuir la carga, se da prioridad a los núcleos en los que el mismo proceso se realizó anteriormente y permaneció parcialmente en la memoria caché, o a cualquier núcleo inactivo.



Shenango también adopta un enfoque de robo de trabajo . Los núcleos asignados para el funcionamiento de una aplicación supervisan el número de tareas entre sí. Si un núcleo finaliza su lista de tareas antes que los demás, entonces "elimina" parte de la carga de sus vecinos.

Ventajas y desventajas.


Según los ingenieros del MIT, Shenango puede procesar cinco millones de solicitudes por segundo y mantener un tiempo de respuesta promedio de 37 microsegundos. Los expertos dicen que en algunos casos la tecnología puede aumentar la utilización de procesadores en centros de datos al 100%. Como resultado, los operadores de centros de datos podrán ahorrar en la compra y mantenimiento de servidores.

Las posibles soluciones también son notadas por especialistas de otras universidades. Según un profesor del Instituto Coreano, el sistema del MIT ayudará a reducir los retrasos en el trabajo de los servicios web. Por ejemplo, es útil en la operación de tiendas en línea. En los días de ventas, incluso un segundo retraso en la carga de la página conduce a una disminución en el número de visitas al sitio en un 11%. El equilibrio de carga en línea ayudará a atender a más clientes.

La tecnología todavía tiene inconvenientes: no es compatible con sistemas NUMA multiprocesador 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 todos los chips de servidor.


/ foto Tim Reckmann CC BY

Tecnología similar


Entre otros sistemas de equilibrio de carga del procesador, Arachne se puede distinguir. Calcula cuántos núcleos necesitará la aplicación en el momento de su lanzamiento y distribuye los procesos de acuerdo con este indicador. Según los autores, la latencia máxima de aplicación en Aracne es de aproximadamente 10 mil microsegundos.

La tecnología se implementa como una biblioteca C ++ para Linux, y su código fuente está en GitHub .

Otra herramienta de equilibrio es ZygOS. Al igual que Shenango, la tecnología utiliza el método de robo de trabajo para redistribuir procesos. Según los autores de ZygOS, el retraso promedio en la aplicación cuando se usa la herramienta es de aproximadamente 150 microsegundos, y el máximo es de aproximadamente 450 microsegundos. El código del proyecto también está en el dominio público .

Conclusiones


Los centros de datos modernos continúan expandiéndose, especialmente la tendencia al alza es notable en el mercado de los centros de datos hiperescala: ahora en el mundo hay 430 centros de datos hiperescala, pero en los próximos años su número puede aumentar en un 30%. Por esta razón, las tecnologías de equilibrio de carga de la CPU tendrán una gran demanda. Los sistemas como Shenango ya están siendo implementados por grandes corporaciones, y en el futuro la cantidad de tales herramientas solo crecerá.



Publicaciones del primer blog corporativo de IaaS:

Source: https://habr.com/ru/post/447058/


All Articles