Un nuevo sistema de investigadores del MIT mejora la eficiencia de las operaciones de alta velocidad en los centros de datos al asignar mejor el procesamiento de datos sensibles al tiempo en los núcleos de la CPU y garantizar que el hardware se ejecute de manera productiva. Crédito:Instituto de Tecnología de Massachusetts
Los centros de datos actuales consumen y desperdician una buena cantidad de energía respondiendo a las solicitudes de los usuarios lo más rápido posible. con solo unos pocos microsegundos de retraso. Un nuevo sistema de investigadores del MIT mejora la eficiencia de las operaciones de alta velocidad al asignar mejor el procesamiento de datos sensibles al tiempo en los núcleos de la unidad central de procesamiento (CPU) y garantizar que el hardware se ejecute de manera productiva.
Los centros de datos operan como redes distribuidas, con numerosas aplicaciones web y móviles implementadas en un solo servidor. Cuando los usuarios envían solicitudes a una aplicación, Los bits de datos almacenados se extraen de cientos o miles de servicios a través de tantos servidores. Antes de enviar una respuesta, la aplicación debe esperar al servicio más lento para procesar los datos. Este tiempo de retraso se conoce como latencia de cola.
Los métodos actuales para reducir las latencias de cola dejan toneladas de núcleos de CPU en un servidor abiertos para manejar rápidamente las solicitudes entrantes. Pero esto significa que los núcleos permanecen inactivos durante gran parte del tiempo, mientras los servidores continúan usando energía solo para permanecer encendidos. Los centros de datos pueden contener cientos de miles de servidores, por lo que incluso pequeñas mejoras en la eficiencia de cada servidor pueden ahorrar millones de dólares.
Alternativamente, algunos sistemas reasignan núcleos entre aplicaciones según la carga de trabajo. Pero esto ocurre en milisegundos, alrededor de una milésima parte de la velocidad deseada para las solicitudes de ritmo rápido de hoy. Esperar demasiado también puede degradar el rendimiento de una aplicación, porque cualquier información que no se procese antes de un tiempo asignado no se envía al usuario.
En un documento que se presentará en la conferencia de diseño e implementación de sistemas en red de USENIX la próxima semana, los investigadores desarrollaron un sistema de asignación de núcleos más rápido, llamado Shenango, que reduce las latencias de la cola, logrando altas eficiencias. Primero, un algoritmo novedoso detecta qué aplicaciones tienen dificultades para procesar datos. Luego, un componente de software asigna núcleos inactivos para manejar la carga de trabajo de la aplicación.
"En los centros de datos, existe una compensación entre eficiencia y latencia, y realmente necesita reasignar núcleos con una granularidad mucho más fina que cada milisegundo, "dice la primera autora Amy Ousterhout, un doctorado estudiante del Laboratorio de Informática e Inteligencia Artificial (CSAIL). Shenango permite a los servidores "administrar operaciones que ocurren en escalas de tiempo realmente cortas y hacerlo de manera eficiente".
Los ahorros de energía y costos variarán según el centro de datos, dependiendo del tamaño y la carga de trabajo. Pero el objetivo general es mejorar la utilización de la CPU del centro de datos, para que cada núcleo tenga un buen uso. Las mejores tasas de utilización de CPU en la actualidad se sitúan en alrededor del 60 por ciento, pero los investigadores dicen que su sistema podría potencialmente aumentar esa cifra al 100 por ciento.
"La utilización del centro de datos hoy en día es bastante baja, "dice el coautor Adam Belay, profesor asistente de ingeniería eléctrica e informática e investigador de CSAIL. "Este es un problema muy serio [que no puede] resolverse en un solo lugar en el centro de datos. Pero este sistema es una pieza crítica para aumentar la utilización".
Junto a Ousterhout y Belay en el periódico están Hari Balakrishnan, el Profesor de la Cátedra Fujitsu en el Departamento de Ingeniería Eléctrica e Informática, y CSAIL Ph.D. estudiantes Jonathan Behrens y Joshua Fried.
Detección eficiente de congestión
En un centro de datos del mundo real, Shenango (algoritmo y software) se ejecutaría en cada servidor de un centro de datos. Todos los servidores podrían comunicarse entre sí.
La primera innovación del sistema es un novedoso algoritmo de detección de congestión. Cada cinco microsegundos, el algoritmo verifica los paquetes de datos en cola para su procesamiento para cada aplicación. Si un paquete todavía está esperando desde la última observación, el algoritmo señala que hay al menos un retraso de 5 microsegundos. También comprueba si algún proceso de cálculo, llamados hilos, están esperando ser ejecutados. Si es así, el sistema considera que una aplicación "congestionada".
Parece bastante simple. Pero la estructura de la cola es importante para lograr una detección de congestión a escala de microsegundos. El pensamiento tradicional significaba que el software verificaba la marca de tiempo de cada paquete de datos en cola, lo que llevaría demasiado tiempo.
Los investigadores implementan las colas en estructuras eficientes conocidas como "búfer de anillo". Estas estructuras se pueden visualizar como diferentes ranuras alrededor de un anillo. El primer paquete de datos ingresado entra en una ranura de inicio. A medida que llegan nuevos datos, se colocan en las siguientes ranuras alrededor del anillo. Generalmente, estas estructuras se utilizan para el procesamiento de datos primero en entrar, primero en salir, extrayendo datos de la ranura inicial y trabajando hacia la ranura final.
El sistema de los investigadores, sin embargo, solo almacena paquetes de datos brevemente en las estructuras, hasta que una aplicación pueda procesarlos. Mientras tanto, los paquetes almacenados se pueden utilizar para controles de congestión. El algoritmo solo necesita comparar dos puntos en la cola (la ubicación del primer paquete y dónde estaba el último paquete hace cinco microsegundos) para determinar si los paquetes están experimentando un retraso.
"Puedes mirar estos dos puntos, y realizar un seguimiento de su progreso cada cinco microsegundos, para ver cuántos datos se han procesado, "Dice Fried. Debido a que las estructuras son simples, "solo tiene que hacer esto una vez por núcleo. Si busca 24 núcleos, haces 24 comprobaciones en cinco microsegundos, que escala muy bien ".
Asignación inteligente
La segunda innovación se llama IOKernel, el concentrador de software central que dirige los paquetes de datos a las aplicaciones adecuadas. IOKernel también utiliza el algoritmo de detección de congestión para asignar rápidamente núcleos a aplicaciones congestionadas órdenes de magnitud más rápidamente que los enfoques tradicionales.
Por ejemplo, el IOKernel puede ver un paquete de datos entrante para una determinada aplicación que requiere velocidades de procesamiento de microsegundos. Si la aplicación está congestionada debido a la falta de núcleos, el IOKernel dedica inmediatamente un núcleo inactivo a la aplicación. Si también ve otra aplicación que ejecuta núcleos con datos menos sensibles al tiempo, tomará algunos de esos núcleos y los reasignará a la aplicación congestionada. Las aplicaciones en sí también ayudan:si una aplicación no procesa datos, alerta al IOKernel que sus núcleos pueden reasignarse. Los datos procesados vuelven al IOKernel para enviar la respuesta.
"IOKernel se concentra en qué aplicaciones necesitan núcleos que no los tienen, ", Dice Behrens." Está tratando de averiguar quién está sobrecargado y necesita más núcleos, y les da núcleos lo más rápido posible, para que no se queden atrás y tengan latencias enormes ".
La estrecha comunicación entre el IOKernel, algoritmo, aplicaciones y el hardware del servidor es "único en los centros de datos" y permite que Shenango funcione sin problemas, Belay dice:"El sistema tiene visibilidad global de lo que sucede en cada servidor. Ve el hardware que proporciona los paquetes, lo que se está ejecutando en cada núcleo, y qué tan ocupadas están cada una de las aplicaciones. Y lo hace a una escala de microsegundos ".
Próximo, los investigadores están perfeccionando Shenango para la implementación del centro de datos en el mundo real. Para hacerlo se aseguran de que el software pueda manejar un rendimiento de datos muy alto y tenga las características de seguridad adecuadas.