Los centros de datos de hoy 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 tiempoprocesamiento de datos a través de los núcleos de la unidad central de procesamiento CPU y garantizar que el hardware funcione 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, se extraen bits de datos almacenados de cientos o miles de servicios en la misma cantidad de 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 que los servidores continúan usando energía solo para mantenerse encendidos. Los centros de datos puedencontienen 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 en función de la carga de trabajo. Pero esto ocurre durante milisegundos, alrededor de una milésima de la velocidad deseada para las solicitudes aceleradas de hoy. Esperar demasiado también puede degradar el rendimiento de una aplicación, porque cualquier información que no seaprocesado antes de que un tiempo asignado no se envíe al usuario.
En un documento presentado 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 cola, al tiempo que logra una alta eficiencia. Primero, un algoritmo novedoso detecta qué aplicacionesestán luchando 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 la eficiencia y la latencia, y realmente necesita reasignar los núcleos a una granularidad mucho más fina que cada milisegundo", dice la primera autora Amy Ousterhout, estudiante de doctorado en el Laboratorio de Ciencias de la Computación e Inteligencia Artificial CSAILShenango permite a los servidores "administrar operaciones que ocurren en escalas de tiempo muy cortas y hacerlo de manera eficiente".
El ahorro de energía y costos variará según el centro de datos, dependiendo del tamaño y las cargas de trabajo. Pero el objetivo general es mejorar la utilización de la CPU del centro de datos, de modo que cada núcleo se aproveche bien. Las mejores tasas de utilización de la CPU de hoy se sitúan en alrededor de 60por ciento, pero los investigadores dicen que su sistema podría aumentar esa cifra al 100 por ciento.
"La utilización del centro de datos hoy es bastante baja", dice el coautor Adam Belay, profesor asistente de ingeniería eléctrica y ciencias de la computación e investigador CSAIL. "Este es un problema muy grave [que no puede] resolverse en unlugar único en el centro de datos. Pero este sistema es una pieza fundamental para aumentar la utilización ".
Junto a Ousterhout y Belay en el papel están Hari Balakrishnan, el profesor presidente de Fujitsu en el Departamento de Ingeniería Eléctrica y Ciencias de la Computación, y los estudiantes de doctorado CSAIL 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 en un centro de datos. Todos los servidores podrían comunicarse entre sí.
La primera innovación del sistema es un nuevo algoritmo de detección de congestión. Cada cinco microsegundos, el algoritmo verifica los paquetes de datos en cola para el procesamiento de cada aplicación. Si un paquete aún está esperando desde la última observación, el algoritmo señala que hay al menos 5 microsegundosretraso. También verifica si algún proceso de cálculo, llamado subprocesos, está esperando ser ejecutado. Si es así, el sistema considera que es una aplicación "congestionada".
Parece bastante simple. Pero la estructura de la cola es importante para lograr la detección de congestión a escala de microsegundos. El pensamiento tradicional significaba que el software verificara la marca de tiempo de cada paquete de datos en cola, lo que tomaría demasiado tiempo.
Los investigadores implementan las colas en estructuras eficientes conocidas como "buffers de anillo". Estas estructuras se pueden visualizar como diferentes ranuras alrededor de un anillo. El primer paquete de datos ingresado va a una ranura de inicio. A medida que llegan nuevos datos, se dejan caer enranuras posteriores alrededor del anillo. Por lo general, estas estructuras se utilizan para el procesamiento de datos primero en entrar, primero en salir, extraer datos del espacio inicial y trabajar hacia el espacio 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 pueden usarse para verificaciones 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 encuentran un retraso.
"Puede observar 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. Siestás viendo 24 núcleos, haces 24 verificaciones en cinco microsegundos, lo que se ajusta muy bien "
asignación inteligente
La segunda innovación se llama IOKernel, el centro de software central que dirige los paquetes de datos a las aplicaciones apropiadas. El IOKernel también utiliza el algoritmo de detección de congestión para asignar rápidamente núcleos a órdenes de magnitud de aplicaciones congestionadas más rápidamente que los enfoques tradicionales.
Por ejemplo, IOKernel puede ver un paquete de datos entrantes 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, IOKernel inmediatamente dedica un núcleo inactivo a la aplicación. Si también veotra aplicación que ejecuta núcleos con datos menos urgentes, tomará algunos de esos núcleos y los reasignará a la aplicación congestionada. Las propias aplicaciones también ayudan: si una aplicación no está procesando datos, alerta al IOKernel que sus núcleos puedenser reasignado. Los datos procesados vuelven al IOKernel para enviar la respuesta.
"El IOKernel se está concentrando en qué aplicaciones necesitan núcleos que no las tengan", dice Behrens. "Está tratando de descubrir quién está sobrecargado y necesita más núcleos, y les da núcleos lo más rápido posible, para que noquedarse atrás y tener enormes latencias "
La estrecha comunicación entre el IOKernel, el algoritmo, las aplicaciones y el hardware del servidor es "única 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 hardwareproporcionar los paquetes, qué 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 ".
A continuación, los investigadores están refinando Shenango para la implementación del centro de datos del 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 apropiadas.
Fuente de la historia :
Materiales proporcionado por Instituto de Tecnología de Massachusetts . Original escrito por Rob Matheson. Nota: El contenido puede ser editado por estilo y longitud.
Cita esta página :