Nuevo equilibrador de carga de CPU del MIT

Está previsto que el sistema Shenango se utilice en centros de datos.

Nuevo equilibrador de carga de CPU del MIT
/ foto Marco Verch CC BY

Según uno de los proveedores, los centros de datos uso sólo entre el 20% y el 40% de la potencia informática disponible. En cargas elevadas este indicador puede llegar al 60%. Esta distribución de recursos conduce a la aparición de los llamados “servidores zombies”. Son máquinas que permanecen inactivas la mayor parte del tiempo, desperdiciando energía. Hoy el 30% de los servidores del mundo estan sin trabajo, consumiendo 30 mil millones de dólares en electricidad al año.

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

Equipo de ingeniería Ha desarrollado Sistema de equilibrio de carga del procesador llamado Shenango. Su propósito es monitorear el estado del búfer de tareas y redistribuir procesos bloqueados (que no pueden recibir tiempo de CPU) a máquinas libres.

Cómo funciona Shenango

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

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

El IOKernel decide a qué núcleos delegar una tarea específica. El algoritmo también decide cuántos núcleos se necesitarán. Para cada proceso, se determinan los núcleos principales (garantizados) y los adicionales (ampliables); estos últimos se lanzan en caso de un fuerte aumento en el número de solicitudes a la CPU.

La cola de solicitudes de IOKernel está organizada como buffer de anillo. Cada cinco microsegundos, el algoritmo comprueba 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 nota 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 se ejecutó anteriormente el mismo proceso y permaneció parcialmente en la caché, o a cualquier núcleo inactivo.

Nuevo equilibrador de carga de CPU del MIT

Shenango también adopta el enfoque trabajo robando. Los núcleos asignados para ejecutar una aplicación monitorean la cantidad de tareas que tienen cada uno. Si un núcleo termina su lista de tareas antes que los demás, entonces "alivia" parte de la carga de sus vecinos.

Ventajas y desventajas

En de acuerdo a Según ingenieros del MIT, Shenango es capaz de 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 los procesadores en los centros de datos hasta el 100%. Como resultado, los operadores de centros de datos podrán ahorrar en la compra y mantenimiento de servidores.

Potencial de solución celebrar y especialistas de otras universidades. Según un profesor de un instituto coreano, el sistema del MIT ayudará a reducir los retrasos en los servicios web. Por ejemplo, será útil en tiendas online. En días de rebajas hay incluso un segundo retraso en la carga de la página. приводит a una disminución en el número de visitas al sitio en un 11%. La distribución rápida de la carga ayudará a atender a más clientes.

La tecnología todavía tiene desventajas: no es compatible con multiprocesador. 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.

Nuevo equilibrador de carga de CPU del MIT
/ foto Tim Reckman CC BY

Tecnologías similares

Otros sistemas de equilibrio de carga del procesador incluyen Arachne. Calcula cuántos núcleos necesitará una aplicación cuando se inicie y distribuye los procesos de acuerdo con este indicador. Según los autores, la latencia máxima de una aplicación en Arachne es de unos 10 mil microsegundos.

La tecnología se implementa como una biblioteca C++ para Linux y su código fuente está disponible 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, la latencia media de una aplicación cuando se utiliza la herramienta es de unos 150 microsegundos y la máxima es de unos 450 microsegundos. El código del proyecto también es es de dominio publico.

Hallazgos

Los centros de datos modernos continúan expandiéndose y la tendencia creciente se nota especialmente en el mercado de los centros de datos a hiperescala: ahora en el mundo hay 430 centros de datos a 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 del procesador tendrán una gran demanda. Sistemas como Shenango ya están disponibles implementar grandes corporaciones, y el número de tales herramientas solo crecerá en el futuro.

Publicaciones del primer blog sobre IaaS corporativa:

Fuente: habr.com

Añadir un comentario